如何使用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语句可以把网页的返回结果直接打印出来。