穿越网页表单与登录窗口进行爬取
今天本文将见绍简单的网页表单与登录窗口爬取,主要说明如何进行前期的网络表单穿越与登录窗口,如有任何不足之处,望批评指正,谢谢!
一、提交一个基本表单
- 测试表单网址:http://pythonscraping.com/pages/files/form.html
- 参考代码:
`import requests
params={'firstname':'Ryan','lastname':'Mitchell'}
r=requests.post('http://pythonscraping.com/pages/processing.php',data=params)
print(r.text)`
- 表单提交的要点:a.想要提交字段的名称;b.表单的action属性,就是表单提交之后网站会显示的页面。
二、单选按钮、复选框和其他输入
- 并非所有的表单都只是一堆文本字段和一个提交按钮,有的表单会比较复杂,如拥有单选按钮、复选框和下拉框等。但是无论表单有多么复杂,仍然只需要关注两件事:字段名称和字段值。字段名称可以通过查看源代码并寻找name属性获得。有些字段会规定字段值的格式,而有些也不会,如需要确定字段值的格式可以跟踪浏览器和网站之间来回发送的GET和POST请求。
- 跟踪GET请求最方便的方式就是看网站的url链接,可以看出字段值的输出格式;跟踪复杂POST表单时,检查浏览器的源代码,Network中的Form Data,可以看见服务器传递的参数。
- 更为详细的查看请求参数,Chrome中在菜单中通过“更多工具”——“开发者工具”(快捷键F12)打开,可以查看所有请求。
三、提交文件和图像
- 测试网址:http://pythonscraping.com/files/form2.html
- 参考代码:
import requests
files={'uploadFile':open(a)}#a为打开的文件路径
r=requests.post('http://pythonscraping.com/pages/processing2.php',files=files)
print(r.text)
四、处理登录和cookie
- 测试网址:http://pythonscraping.com/pages/cookies/login.html
- 测试代码:
import requests
params={'Username':'a','password':'password'}
r=requests.post('http://pythonscraping.com/pages/cookies/welcome.php',params)
print('Cookie is set to:')
print(r.cookies.get_dict())
r=requests.get('http://pythonscraping.com/pages/cookies/profile.php',cookies=r.cookies)
print(r.text)
ps:以上内容为本人学习python爬虫的学习笔记,不属于原创内容,如有冒犯,希望谅解,谢谢!