爬虫中关于登录网页,文件上传的一些笔记

爬虫中遇到的登录login和form

大多数web form都是由一些HTML field, submit button, 以及一个”action” page,即form真正被处理的地方,共同组成。举例说明,以下为一个最基本的web form:http://pythonscraping.com/pages/files/form.html, 可以用chrome浏览器,view-developer-source code查看html代码。

通过查看代码,要注意两点:

  • [ ] 两个input field的名字是firstname和last name, 这两个名字是我们一会儿要POST到server去的。
  • [ ] 这里处理form的文件是processing.php,也是我们一会要传送的。

怎么在爬虫中完成登录,在这里介绍python的Request library,非常简单的代码:

`import requests

params = {‘firstname’: ‘Ryan’, ‘lastname’: ‘Mitchell’}
r = requests.post(“http://pythonscraping.com/files/processing.php“, data = params)
print(r.text)`

当然,这里的例子用的form很简单,但是当面对登录页面复杂的HTML代码时,我们也不用过于紧张,我们只需要寻找两类:

  • [ ] 想要提交的数据的field的名字, 比如上面例子的firstname和lastname。
  • [ ] 真正处理form的action page。

爬虫中遇到的Radio Buttons, Checkboxes和其他输入

标准HTML文件包含了很多可能的form input fields,比如radio buttons, checkboxes, select boxes, 在 HTML5中,还有emails, dates等等,尽管登录页面代码看着很复杂,但我们要集中查找以上谈过的两类:

  • [ ] 想要提交的数据的field的名字, 比如上面例子的firstname和lastname。
  • [ ] 真正处理form的action page。

有一种非常便捷的方法查看GET REQUESTS, 就是查看这个site的url,举例说明:假设url长这样http: //domainname.com?thing1=foo&thing2=bar

上传文件和图片

举例说明操作吧,https://www.pythonscraping.com/files/form2.html, 查看其source code后,我们发现和第一个例子的source code很像,不同点在于这里的 type是file,代码如下:

`import requests

files = {‘uploadFile’: open(‘.,/files/pic.png’, ‘rb’)}
r =requests(“https://www.pythonscraping.com/pages/processing2.php“, files=files)
print(r.text)`