首页 > 编程语言 > 详细

Python爬虫〇二———从几个简单的爬虫开始

时间:2021-01-13 23:50:41      阅读:35      评论:0      收藏:0      [点我收藏+]

下面,我们从几个简单的爬虫开始我们的爬虫之旅

通用爬虫

我们先来做一个通用的爬虫,作用是爬取一个搜索引擎的搜索结论。比方说用搜狗搜一下python这个关键字,注意看一下url:

 

 

技术分享图片

 

 可以看出来这是个GET请求,参数可以直接看出来,也可以通过浏览器的抓包工具看一下

 技术分享图片

 

 

 上面的图里大概演示了从哪里找到抓包工具,选中的就是我们请求的内容。可以看看右边那个对话框中的Headers选项卡里的内容,讲了请求头和响应头

请求头

技术分享图片

 

 响应头

技术分享图片

 

 请求头中选中的那一行User-Agent是几乎所有爬虫都要设置的一个内容,——UA伪装。

UA伪装和UA策略

服务器在拿到请求的时候,可以通过请求头里的参数User-Agent获取到请求载体的身份标识,如果是浏览器的话就允许访问数据,否则就屏蔽掉。这应该就是最原始的反爬策略了。所以我们就给爬虫加了个UA伪装,让他假装是一个浏览器

 1 #!/usr/bin/python3
 2 import requests
 3 
 4 if __name__ == __main__:
 5     url = https://www.sogou.com/web
 6     headers = {
 7             User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36
 8              }
 9     #处理url携带的参数
10     kw = input(word:)
11 
12     param = {
13         query:kw
14     }
15     
16     respon = requests.get(url,params=param,headers=headers)
17 
18     data = respon.text
19     file_name =./+ kw+.html
20     with open(file_name,w,encoding=utf-8) as f:
21         f.write(data)

上面就是最简单的爬虫了。param里的key是从GET请求的参数来的

技术分享图片

 

 整个过程没什么难的,因为响应头里定义了数据的类型就是text,所以我们就在18行里的data就是respon.text的方式拿到数据的。

 AJAX响应页面的爬虫

 有很多的页面是通过AJAX请求来对页面部分刷新的,而这些刷新出来的内容正是我们需要的,这个爬虫要怎么做呢?

技术分享图片

 其实我们主要就是想拿到输入框下面的内容,注意看一下我们每输入一个字母就会队页面进行一下刷新,所以这应该是个AJAX请求

还是要看看抓包工具里的几个重要的参数

技术分享图片

 

上面说明了AJAX请求的URL和方法

技术分享图片

 

 这里可以注意一下,返回的内容是个json对象 

技术分享图片

 

看看输入do以后的请求带的参数,主要是query,其实其他的都可以暂时忽略。

所以我们可以根据上面的内容来组织代码

 1 # !/usr/bin/python3
 2 import requests
 3 
 4 if __name__ == __main__:
 5     url = https://fanyi.baidu.com/sug
 6     headers = {
 7             User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36
 8     }
 9 
10     word = input(word)
11 
12     data = {kw:word}
13 
14     response = requests.post(url=url,headers=headers,data=data)
15 
16     with open(./+word,w) as f:
17         f.write(response.json)

因为响应的内容是个json对象,所以最后一行的代码是response.json,这样就完成了数据的持久化。

总结

 从上面两个简单的爬虫入手,我们大概了解了如何通过浏览器的行为去构建一个爬虫。后面我们去爬一个稍微复杂的数据!

Python爬虫〇二———从几个简单的爬虫开始

原文:https://www.cnblogs.com/yinsedeyinse/p/13763272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!