就现在开始我们一般用requests模块进行爬虫,
就是模拟浏览器发出请求
使用流程:
1,指定url链接
2,发起请求
3,获取响应数据
4,持久化存储
实战1:爬取搜狗首页的页面数据
左上角的链接就是url链接,然后代码如下
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
if __name__ == "__main__":
#step_1:指定url
url = 'https://www.sogou.com/'
#step_2:发起请求
#get方法会返回一个响应对象
response = requests.get(url=url)
#step_3:获取响应数据.text返回的是字符串形式的响应数据
page_text = response.text
print(page_text)
#step_4:持久化存储
with open('./sogou.html','w',encoding='utf-8') as fp:
fp.write(page_text)
print('爬取数据结束!!!')
运行结束会生成一个.html文件
实战二:网页采集器
#UA:User-Agent(请求载体的身份标识)
#UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,
#说明该请求是一个正常的请求。但是,如果检测到请求的载体身份标识不是基于某一款浏览器的,则表示该请求为不正常的请求(爬虫),则服务器端就很有可能拒绝该次请求。
#UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器
每个人的UA都是不同的,打开任意浏览器,点击右键,点击检查:如下图
然后点击最上面Network,点击左边的name,如果啥也没出现,点击f5刷新,然后随意点击一个,出现下图右半部分,此处最好仔细看看,每个的结构都是相同的,找到自己的User-Agent,即此图的右下角。
UA的使用如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
if __name__ == "__main__":
#UA伪装:将对应的User-Agent封装到一个字典中
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
url = 'https://www.sogou.com/web'
#处理url携带的参数:封装到字典中
kw = input('enter a word:')
param = {
'query':kw
}
#对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数
response = requests.get(url=url,params=param,headers=headers)
page_text = response.text
fileName = kw+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(fileName,'保存成功!!!')
那么url链接如何确定的呢?看下图最上面的链接,可以看出,第一个从https://www.sogou.com/web?qurey=胡歌 往后的东西又没有都可以获得此页面,并且当我们把’胡歌‘这个词换成别的之后依旧可以使用。这便是我们要的链接。