新手如何用requests写一个爬虫的简单文字教程,大佬们勿喷,如有不对欢迎指正!

查看 48|回复 1
作者:qianaonan   
一、序言
[color=]1、在这个教程里会用到requests库和Fiddler Classic软件,至于怎么安装和使用请自行百度。
[color=]2、在这个教程里有什么不对的地方欢迎指正
{:1_918:},这个教程只是写一下我如何使用requests这个库的记录,毕竟萝卜青菜各有所爱而且我也不是专门学习编程的,只是一个热爱编程的自学者,每个人的理解都不一样,只要最后的结果它是一致的就行。
[color=]3、在教程开始之前,请先理解一下什么是get请求和post请求,我不会用什么官方的语言描述,当然我也没看没百度
{:1_907:}用我自己的理解就是用户端post是发送数据、get是得到数据。
二、创建会话对象
首先导入库import requests
我习惯用req作为对象
[Python] 纯文本查看 复制代码req = requests.Session()
这里等号前req可自行更改,只要自己知道就行。
三、发送GET请求
使用Session对象发送GET请求非常简单,只需调用get()方法,并传入目标URL:
[Python] 纯文本查看 复制代码response = req.get('https://api.example.com/get')
上面代码可以携带的参数:
1、url:请求的目标URL。(常用)
2、params:添加到URL的查询字符串中的参数,以字典形式提供。(常用)
3、headers:请求的头信息,以字典形式提供。(常用)
4、cookies:发送的Cookie,以字典或CookieJar对象形式提供。(常用)
5、auth:用于身份验证的元组,例如(username, password)。
6、timeout:请求超时时间,以秒为单位。
7、proxies:用于请求的代{过}{滤}理,可以是字典形式提供。
8、verify:是否验证服务器的SSL证书,默认为True。
9、stream:是否立即下载响应内容,默认为False。
10、allow_redirects:是否允许重定向,默认为True。
我们可以通过打印函数print得到get请求后的html源码
[Python] 纯文本查看 复制代码print(response.text)
四、发送POST请求
要发送POST请求,可以使用post()方法。可以通过data参数传递请求的数据:
[Python] 纯文本查看 复制代码payload = {'key1': 'value1', 'key2': 'value2'}
response = req.post('https://api.example.com/post', data=payload)
上面括号中代码可以携带的参数:
1、url:请求的目标URL。(常用)
2、data:向服务器发送的数据,可以是字典、字符串或字节流。(常用)
3、json:向服务器发送的JSON数据,会自动设置Content-Type为application/json。(常用)
4、headers:请求的头信息,以字典形式提供。(常用)
5、params:添加到URL的查询字符串中的参数,以字典形式提供。(常用)
6、cookies:发送的Cookie,以字典或CookieJar对象形式提供。(一般在header中使用)
7、files:上传的文件,可以是字典或元组形式提供。
8、auth:用于身份验证的元组,例如(username, password)。
9、timeout:请求超时时间,以秒为单位。
10、proxies:用于请求的代{过}{滤}理,可以是字典形式提供。
11、verify:是否验证服务器的SSL证书,默认为True。
12、stream:是否立即下载响应内容,默认为False。
13、allow_redirects:是否允许重定向,默认为True。
同样也可以通过print函数打印出源码。
五、添加请求头
举个例子
[Python] 纯文本查看 复制代码headers = {'User-Agent': 'Mozilla/5.0'}
response =req.get('https://api.example.com', headers=headers)
六、cookie
在这里我们使用的是session,这个会自动存储会话的cookie,当然有可能cookie不一定是一致,有些防爬虫的网站会经常进行cookie更换,例如:我遇到的就是我们公司的官网,但是通过fiddler classic把cookie用搜索,它的cookie是存在于源码或者返回头里,这里在源码里进行数据清洗,如果在返回头里的可以试试这个
[Python] 纯文本查看 复制代码cookies = response.headers.getlist('Set-Cookie')
输出返回头提取cookie。
以上就是requests.session的简要教程。
接下来讲讲如何利用
[color=]Fiddler Classic


安装就不具体讲了,自行百度吧,写requests可以仿照fiddler classic上所抓取的网址顺序,以及各个网址中所需的参数和请求形式,可以参照:
(71条消息) Fiddler详解-Fiddler Classic_流墨馨的博客-CSDN博客学习如何看懂和使用fiddler classic,如果fiddler选择all processes可以运行脚本查看到自己写的python脚本在哪一步有问题。
如果要过纯数字验证码,可以使用ddddocr,得到数据后就需要数据清洗,常用的lxml、
[color=]BeautifulSoup、re正则(简单但有可能数据不是自己想要而且网址数据可能是经常变的)、list转str进行str查找等,这里就不一一写了,百度一下能学会的。
[color=]最后的最后,我觉得对于新手学爬虫第一步踏出去会很难,但你踏出去了,慢慢学会了就会好很多。
[color=]有什么问题百度或问吾爱大佬们,本人不提供帮助,这个文章就当给新手踏出第一步助力一把,当然我不知道对新手会不会有帮助,但是我就是这样没有老师自己一步一步来的。
[color=]大佬们勿喷


image.png (146.33 KB, 下载次数: 0)
下载附件
2023-7-3 18:17 上传

,欢迎大佬指正!
[color=]刚学requests爬虫的也可以看看评论区(如果有),向大佬多多学习,慢慢的就会了。
[color=]这个文章当自己的一个学习python过程中简单的记录吧!

字典, 形式

womaromar   

[url][/url]
您需要登录后才可以回帖 登录 | 立即注册

返回顶部