实例1:京东商品页面爬取:
首先,随便找一个京东的商品,复制该商品的URL地址:
https://item.jd.com/11011549561.html?jd_pop=18147c5d-a57f-4785-ae83-e3f530b6a598&abt=0
然后,利用requests获取商品信息
>>>import requests #引入requests
>>>r = requests.get("url") #()括号里是url地址
>>>r.status_code #状态码是200,表示成功获得了商品的信息
>>>r.encoding # 'gdk' 说明从HTTP的头部分获得了编码的信息,说明京东的网站提供了页面信息的相关编码
>>>r.text[:1000] #返回的内容是否正确,我们看到了商品的信息
实例2:亚马逊商品页面的爬取:亚马逊网页不能直接爬取,需要键子对
笔记:
1.怎么处理问题
>>>import requests
>>>r = requests.get("https://www.amazon.cn/b/ref=sa_menu_digita_l3_b2110348051/459-4739484-2903211?ie=UTF8&node=2110348051") #随便一个商品的url信息
>>>r.status_code
503 #状态码是503说明访问出现了错误(那么它出现了什么错误呢?我们查看它的编码)
>>>r.encoding
'ISO-8859-1'
>>>r.encoding = r.apparent_encoding #(把编码改成我们可以阅读的编码)
>>>r.text #(我们看一下返回的文本)
(网站对网络爬虫限制:
1,robots协议:告知爬虫,哪些可以哪些不行
2,隐性的:通过判断对网站的头查看,是不是由于爬虫引起的)下面看看是啥引起的:
>>>r.request.headers #头部内容
(python-requests,我们的Python诚实的告诉了亚马逊的服务器,这次访问时由一个服务器是由一个Python的requests库的程序产生的,那么我可以更改头部信息模拟信息,向亚马逊发出请求)
>>>kv = {'user-agent' : 'Mozilla/5.0'} #这样的一个键子对的信息是,我们重新定义了:user-agent的内容,使它 = ' Mozilla/5.0'。牛逼的'Mozilla/5.0'是一个很标准的浏览器的身份标识的字段。
>>>url = "https://www.amazon.cn/摄影-摄像/dp/B01N76G2JT/ref=lp_2110348051_1_1?s=photo&ie=UTF8&qid=1500646823&sr=1-1" #(我们找到我们之前的url链接)
>>>r = requests.get(url ,hesders = kv) #(修改headers字段的user-agent做相关修改)
>>>r.status_code
200 #我们获得了这个页面(下面我们验证一下)
>>>r.request.headers #(user-agent 已经变成了Mozilla/5.0了)
>>>r.text [:1000]
2,总结,访问亚马逊的全部代码(与访问京东的不同),如下:
笔记:
对一些网页保护比较好的,我们可以通过伪装获取信息。