欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何使用Python实现自动化抓取浏览器内容和提交答案

程序员文章站 2022-04-22 17:26:37
所需知识: Python3.+使用、requests库、BeautifulSoup4库(或re库) 流程: 1.抓取内容 首先,使用requests库抓取目标网页内容到内存...

所需知识:

Python3.+使用、requests库、BeautifulSoup4库(或re库)

流程:

1.抓取内容

首先,使用requests库抓取目标网页内容到内存中,语法如下:

import requests
get_url = ‘’#输入目标网址
session = requests.session()#建立一个requests的会话对象
html = session.get(get_url).content#使用上面建立的对象去打开网页,并获取html文档内容

使用print(html)即可看到目标网页的的html文本。

2.解析网页

接下来,我们使用Python中的BeautifulSoup库去解析获得我们想要的内容,只需短短几行语句加上一点耐心,再复杂的内容也可以分解出来。BeautifulSoup这个库采取解析html文档树的方法去获得特定标签、css属性对应的内容,特点是语法简单,入门的话建议直接去阅读它的官方文档(也有中文版),预计1小时内可以简单使用BeautifulSoup去解析网页内容。

如果正则表达式基础比较熟练的话,可以直接使用re(正则表达式)去匹配获得我们想要的内容,也比较方便。

3.计算处理数据

在实际使用中,最重要的一步是对获得的内容进行处理,为下一步的自动提交做准备,这一部分需要结合实际情况去分析,略过。

详细例子参考文末链接。

4.自动化

最后,需要自动提交数据,这一步可以分为两种情况。一种是使用GET方法传递参数,对这种情况,我们只需对字符串进行拼接,然后同样使用第一步中的方法访问url、打印返回数据。

第二种情况是使用POST方法传递参数,在这种情况中,我们需要构造payload,即需要提交的变量名称与对应的值的键值对,形如{‘变量名’:’值’}。需要使用BurpSuite抓包、或分析html中提交按钮的属性才能知道变量名是什么。使用以下语句去构造payload并提交

post_url = ‘’#使用BurpSuite抓包查看post数据提交的url
payload = {'pass_key':str(num)}#键值对
post = session.post(post_url, payload)#依然使用上面建立连接时的会话去提交数据
print(post.text)

使用print语句可以把网页的返回结果直接打印出来。