python爬虫新手学习日记(一)

280 阅读2分钟

简单爬取搜狗搜索HTML数据

①下载requests库(第三方库)

方法一:按win+R输入cmd打开命令框使用指令pip install requests安装(如图所示) image.png 方法二:使用pycharm工具(文件->设置->项目->python解释器)

点击加号

image.png

在搜索框输入requests,根据自己需求选择版本(建议选择最新版),最后点击左下角安装软件包就可以了。 版本下面的选项可以选择下载网站。 例如:pypi.douban.com/simple (豆瓣) (不写默认就是国外网站,下载速度较慢) image.png

②爬虫分析

1.打开搜狗搜索引擎

image.png

2.往搜索栏随意输入字符(例如:你的名字)然后搜索

image.png

3.将标题处的网址拿出得到

(www.sogou.com/web?query=你…)
就是这么一大串的字符,由此我们可以得知搜索的关键词放在了query=的后面,而&后面那部分我们暂时用不到先不管(把网站中你的名字后面那一大串去掉然后点击回车也没有影响)

4.按F12(笔记本电脑就按Fn+F12)或者也可以右键然后点击检查打开浏览器的调试工具

image.png 点击刷新就能重新抓数据(如图所示)

image.png

5.点击第一个包

image.png 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

里面的内容是网站的参数

image.png 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')