学习完Python语法之后可以做一个简单的爬虫来练手,我学习Python用的是《Python编程:从入门到实践》这本书。先安装的Anaconda,从官网下载,百度有安装教程。IDE使用的PyCharm,百度有安装教程,使用激活码激活,激活码也是百度的。
关于Python爬虫,知乎有一个帖子,讲的是从零开始写Python爬虫,链接:https://zhuanlan.zhihu.com/p/26673214
关于爬虫的一些库:
Requests 库:一款比较好用的HTTP库,python自带有urllib以及urllib2等库,但用起来是没有这个舒服。
BeautifulSoup 库 :一款优秀的HTML/XML解析库。建议安装lxml解析器,如果不安装lxml,则BeautifulSoup会使用Python内置的解析器对文档进行解析。之所以使用lxml,是因为它速度快。(关于爬虫中常见的两个网页解析工具的分析——lxml/xpath与bs4/BeautifulSoup:https://www.cnblogs.com/binye-typing/p/6656595.html?utm_source=itdadao&utm_medium=referral)
一、requests库的安装与使用
键盘win+R快捷键,输入cmd,运行命令窗口。然后输入pip install requests,等待安装完毕。
打开PyCharm,创建一个python文件,输入第一行代码导入requests库,然后获取目标网页。
import requests
r=requests.get("https://www.baidu.com")
print(r.text)
运行该文件,输出结果。
关于headers:
1、为什么要设置headers?
在请求网页爬取的时候,输出的信息中会出现“抱歉,无法访问等字眼”,这就是禁止爬取,需要通过反爬机制去解决这个问题。headers是解决requests请求反爬的方法之一,相当于我们进去这个网页的服务器本身,假装自己本身在爬取数据。
2、headers在哪里找?
谷歌或火狐浏览器,在网页页面上点击右键-->检查,选择Network,按一下F5刷新出网页。在左边Name一栏选中爬取的网址,在右边一栏中选中Headers,拉到Request Headers部分,可以看到一系列的键值对。主要常用的就是user-agent和host,如果user-agent以字典键对形式作为headers的内容,就可以反爬成功,不需要其他键值对;否则,需要加入headers下的更多键值对形式。
例如:
import requests
r=requests.get("https://www.zhihu.com")
print(r.text)
输出:
import requests
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
}
r=requests.get("https://www.zhihu.com",headers=headers)
print(r.text)
输出
附:HTTP请求的返回状态
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
常见:404、500、502、403