对网络爬虫有两种限制
1.robot协议告知哪些是可以访问的,哪些是不可以访问的。
2.通过对访问网站的http的头来查看你的访问是不是由一个爬虫引起的,进而拒绝你的访问。
用 headers 字段通过程序模拟一个浏览器去访问网站。
import requests
url = " https://www.amazon.cn/dp/B01JRE0HKW/ref=tmm_kin_title_sr?_encoding=UTF8&qid=&sr="
try:
kv = {'user-agent':'Mozilla/5.0'}
r = requests.get(url,headers=kv)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[1000:2000])
except:
print("爬取失败")
kv是一个键值对,模拟了浏览器的信息‘Mozilla/5.0’
这段代码是在360搜索引擎下面爬取关键词 “python”
import requests
keyword = "python"
try:
kv = {'q':keyword}
r = requests.get("http://www.so.com/s",params = kv)
print(r.request.url)
r.raise_for_status()
print(len(r.text))
except:
print("爬取失败")