Requests(Python爬虫快速入门-实战)
1 - Requests(百度新闻爬取-简单爬虫)
-
标题
百度新闻爬取(适用于无反爬机制的网站)
-
知识点
1 - requests.get(爬取的url网页网址) [ 返回一个response对象 ]
2 - response.text [ 获取该网页的源代码 ]
-
示例
#导入requests爬虫库 import requests #目标网址 url = "http://news.baidu.com/guonei" #基础爬取(适用于无反爬机制的网站) response = requests.get(url) #获取爬取后的网页源代码(后期用于清洗数据) html_source = response.text #打印网页源代码 print(html_source)
-
问题答疑
若上面代码无法运行,则说明可能还未安装该库,安装该库的方法很简单,可直接在cmd命令行哪里输入pip install requests,即可安装完成。上面代码具体思路是,首先导入requests库,然后调用该库的get函数,往里面传参,传一个需要爬取信息的网址,然后该函数会返回一个response对象,通过response对象的text属性即可获取爬取网址的网页源代码。
-
展示
2 - Requests(豆瓣评论爬取-模仿浏览器User-Agent)
-
标题
豆瓣评论爬取(适用于轻微反爬机制的网站)
-
知识点
1 - requests.get(爬取的url网页网址,请求头信息) [ 返回一个response对象 ]
2 - response.text [ 获取该网页的源代码 ]
3 - 请求头信息一般为浏览器标识,来源网站,Cookie
4 - 该示例主要用了浏览器标识,目的是伪装浏览器来爬取信息
-
示例
#导入requests爬虫库 import requests #目标网址 url = "https://movie.douban.com/subject/34973399/comments?status=P" #请求头构造 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'} #基础爬取(适用于无反爬机制的网站) response = requests.get(url,headers = headers) #获取爬取后的网页源代码(后期用于清洗数据) html_source = response.text #打印网页源代码 print(html_source)
-
问题答疑
若上面代码无法运行,则说明可能还未安装该库,安装该库的方法很简单,可直接在cmd命令行哪里输入pip install requests,即可安装完成。上面代码具体思路是,首先导入requests库,然后调用该库的get函数,往里面传参,传一个需要爬取信息的网址,还传入一个请求头信息,因为有些网站是有反爬机制,需要是浏览器才能访问该网站,所以我们就使用User-Agent的方式来伪装浏览器即可爬取成功,然后该函数会返回一个response对象,通过response对象的text属性即可获取爬取网址的网页源代码。若不知道请求头信息怎么获取,我们可以在网页中鼠标右键或者F12键,点击审查元素,然后会弹出一个小框,找到小框中的网络,再点击DOC(文档),然后刷新页面就可以看到请求头的信息了。每个人的请求头信息不一致,以自己浏览器的信息为准,可参考下图
-
展示
3 - Requests(豆瓣个人信息页爬取-仿登录状态Cookie)
-
标题
豆瓣个人信息页爬取(适用于轻微反爬机制的网站)
-
知识点
1 - requests.get(爬取的url网页网址,请求头信息) [ 返回一个response对象 ]
2 - response.text [ 获取该网页的源代码 ]
3 - 请求头信息一般为浏览器标识,来源网站,Cookie
4 - 该示例主要用了浏览器标识和Cookie,目的是获取用户登录过的信息状态
5 - 一般需要登录后才可以获取的信息,那我们就可以用到cookie,如果不用登录即可获取信息,可忽略cookie值
-
示例
#目标网址 url = "https://www.douban.com/people/211482309/" #请求头构造 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36','Cookie':'bid=QfkbYkKhbpc; __gads=ID=32f04d989dbc75c0-22640f544fc6002c:T=1615300304:RT=1615300304:S=ALNI_Macv2F_VQ4riJiZLUxeboR3T6x-zg;'} #基础爬取(适用于无反爬机制的网站) response = requests.get(url,headers = headers) #获取爬取后的网页源代码(后期用于清洗数据) html_source = response.text #打印网页源代码 print(html_source)
-
问题答疑
若上面代码无法运行,则说明可能还未安装该库,安装该库的方法很简单,可直接在cmd命令行哪里输入pip install requests,即可安装完成。上面代码具体思路是,首先导入requests库,然后调用该库的get函数,往里面传参,传一个需要爬取信息的网址,还传入一个请求头信息,因为有些网站是有反爬机制,需要是浏览器才能访问该网站,所以我们就使用User-Agent的方式来伪装浏览器即可爬取成功,还要Cookie,因为个人主页要有登录状态才可获取信息,所以我们使用Cookie来模仿一个登录状态,该Cookie的值必须要是我们登录过该网站,然后使用审查元素查看请求头信息获取的最新cookie信息,否则是无法获取该个人主页页面的信息,然后该函数会返回一个response对象,通过response对象的text属性即可获取爬取网址的网页源代码。若不知道请求头信息怎么获取,我们可以在网页中鼠标右键或者F12键,点击审查元素,然后会弹出一个小框,找到小框中的网络,再点击DOC(文档),然后刷新页面就可以看到请求头的信息了。每个人的请求头信息不一致,以自己浏览器的信息为准,可参考下图
-
展示
4 - Requests(豆瓣评论代理IP爬取-不同IP访问Proxies)
-
标题
豆瓣评论代理IP爬取(适用于轻微反爬机制的网站)
-
知识点
1 - requests.get(爬取的url网页网址,请求头信息) [ 返回一个response对象 ]
2 - response.text [ 获取该网页的源代码 ]
3 - 请求头信息一般为浏览器标识,来源网站,Cookie
4 - 该示例主要用了浏览器标识,目的是伪装浏览器来爬取信息
5 - proxies是构造代理IP信息,也就是使用别的IP来访问该网站
-
示例
#导入requests爬虫库 import requests #目标网址 url = "https://movie.douban.com/subject/34973399/comments?status=P" #请求头构造 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'} #代理ip信息构造 proxies = {"https":"140.250.152.227:45113"} #基础爬取(适用于无反爬机制的网站) response = requests.get(url,headers = headers,proxies = proxies) #获取爬取后的网页源代码(后期用于清洗数据) html_source = response.text #打印网页源代码 print(html_source)
-
问题答疑
若上面代码无法运行,则说明可能还未安装该库,安装该库的方法很简单,可直接在cmd命令行哪里输入pip install requests,即可安装完成。上面代码具体思路是,首先导入requests库,然后调用该库的get函数,往里面传参,传一个需要爬取信息的网址,还传入一个请求头信息,因为有些网站是有反爬机制,需要是浏览器才能访问该网站,所以我们就使用User-Agent的方式来伪装浏览器即可爬取成功,这里还用到一个代理IP的方式也就是构造proxies信息,由于有时候我们对爬取的网站进行频繁访问,可能会给网站进行限制访问,这里我们就可以使用代理IP的方式来访问,即可跳过限制。然后该函数会返回一个response对象,通过response对象的text属性即可获取爬取网址的网页源代码。若不知道请求头信息怎么获取,我们可以在网页中鼠标右键或者F12键,点击审查元素,然后会弹出一个小框,找到小框中的网络,再点击DOC(文档),然后刷新页面就可以看到请求头的信息了。每个人的请求头信息不一致,以自己浏览器的信息为准,可参考下图
-
展示
以上只是获取到的网页的源代码,但是我们想要的并不是这些代码,而是代码里面的一些文字,比如电影名还有所有评论这些,因此,requests库只是负责爬取信息,要清洗出来我们信息还要用到re正则表达式或者lxml或者bs4库这些,下一节会给大家详细讲解,怎么清洗出来我们想要的数据