简单爬取搜狗搜索HTML数据
①下载requests库(第三方库)
方法一:按win+R输入cmd打开命令框使用指令pip install requests安装(如图所示)
方法二:使用pycharm工具(文件->设置->项目->python解释器)
点击加号
在搜索框输入requests,根据自己需求选择版本(建议选择最新版),最后点击左下角安装软件包就可以了。
版本下面的选项可以选择下载网站。
例如:pypi.douban.com/simple (豆瓣) (不写默认就是国外网站,下载速度较慢)
②爬虫分析
1.打开搜狗搜索引擎
2.往搜索栏随意输入字符(例如:你的名字)然后搜索
3.将标题处的网址拿出得到
(www.sogou.com/web?query=你…)
就是这么一大串的字符,由此我们可以得知搜索的关键词放在了query=的后面,而&后面那部分我们暂时用不到先不管(把网站中你的名字后面那一大串去掉然后点击回车也没有影响)
4.按F12(笔记本电脑就按Fn+F12)或者也可以右键然后点击检查打开浏览器的调试工具
点击刷新就能重新抓数据(如图所示)
5.点击第一个包
searchList.jsp?s_from=pcsearch&keyword=%E4%BD%A0%E7%9A%84%E5%90%8D%E5%AD%97
6.Headers出现三个信息块
(1)General中展示
一、Request URL: m.sogou.com/web/searchL… 表示网址
二、Request Method:GET 表示的是get提交方式,另外还有一种叫做post提交
其他信息暂时不管
(2)Response Headers(响应头)
暂时用不到,先不讲
(3)Request Headers(请求头)
翻到最后几行,有一个
user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Mobile Safari/537.36 Edg/108.0.1462.46
其中user-agent代表浏览器信息,不同浏览器内容不同
7.Headers右边的Payload
里面的内容是网站的参数
keyword:你的名字
这句话就是搜索关键词
③代码分析
import requests #导入模块
keyword=input("请输入关键词:")
url = "https://www.sogou.com/web?query="+keyword
headers = { # header的参数是以字典形式传入
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
}
resp = requests.get(url=url, headers=headers) #使用requests的get方法传入参数header,url
print(resp.text) #输入爬取内容
总结
1.导包
2.根据浏览器抓包工具获取网站地址数据,提交方式,浏览器信息。(由于网站一般都有反爬虫机制,不加入headers参数就被服务器屏蔽,从而抓不到数据)
(python默认的headers是'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36', 'Accept-Encoding': 'gzip, deflate', 'Accept': '/', 'Connection': 'keep-alive')