第6章 表单交互
在前面几章中,我们下载的静态网页返回的是相同的内容。而在本章中,我们将与网页进行交互,根据用户输入返回对应的内容。本章将包含如下几个主题:
- 发送
POST
请求提交表单; - 使用cookie和会话登录网站;
- 使用Selenium用于表单提交。
想要和表单进行交互,就需要拥有可以登录网站的用户账号。现在我们需要手工注册账号,其网址为http://example.python-scraping.com/user/register
。本章目前还无法实现自动化注册表单,不过在下一章中我们将会介绍处理验证码图像的方法,从而实现自动化表单注册。
表单方法
HTML定义了两种向服务器提交数据的方法,分别是
GET
和POST
。使用GET
方法时,会将类似?name1=value1&name2=value2
的数据添加到URL中,这串数据被称为“查询字符串”。由于浏览器存在URL长度限制,因此这种方法只适用于少量数据的场景。另外,这种方法通常应当用于从服务器端获取数据,而不是修改数据,不过开发者有时会忽视这一规定。而在使用POST
请求时,数据在请求体中发送,而不是在URL中。敏感数据只应使用POST
请求进行发送,以避免将数据暴露在URL中。POST
数据在请求体中如何表示需要依赖于所使用的编码类型。服务器端还支持其他HTTP方法,比如PUT
和DELETE
方法,不过这些方法在标准HTML表单中均不支持。
6.1 登录表单
我们最先要实施自动化提交的是登录表单,其网址为http://example. ...
Get 用Python写网络爬虫(第2版) now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.