《web scraping with python》笔记--穿越网页表单与登录窗口进行采集

爬取数据时常常会遇到提交表单、上传文件和登录界面,这时我们该怎么做来完善自己的爬虫


1.学会提交一个基本的表单

(1)首先观摩一下最基础的登录界面的html形式:http://pythonscraping.com/pages/files/form.html

       


<formmethod="post"action="processing.php">
First name:<inputtype="text"name="firstname"><br>
Last name:<inputtype="text"name="lastname"><br>
<input type="submit"value="Submit">
</form>

注意 a.First name 和last name 的方法是post,也就是向服务器上传数据。(get 则是获取)

 b.实际操作界面是http://pythonscraping.com/files/processing.php

  

我们可以用python的requests模块来提交


提交表单后将得到页面的内容,输出如下:


(2)再例如,http://post.oreilly.com/client/o/oreilly/forms/quicksignup.cgi


<formaction="http://post.oreilly.com/client/o/oreilly/forms/quicksignup.cgi"id="example_form2"method="POST">
<input name="client_token"type="hidden"value="oreilly"/>
<input name="subscribe"type="hidden"value="optin"/>
<input name="success_url"type="hidden"value="http://oreilly.com/store/newsletter-thankyou.html"/>
<input name="error_url"type="hidden"value="http://oreilly.com/store/newsletter-signup-error.html"/>
<input name="topic_or_dod"type="hidden"value="1"/>
<input name="source"type="hidden"value="orm-home-t1-dotd"/>
<fieldset>
<input class="email_address long"maxlength="200"name="email_addr"size="25"type="text" 

value="Enter your email here" />
<button alt="Join"class="skinny"name="submit"οnclick="return addClickTracking('orm','ebook','rightrail','dod'
);" value="submit">Join</button>
</fieldset>
   </form>


比前面一个看着复杂,但提交模式还是一致。首先找到要提交的区域,这里主要是email_address,实际操作界面的链接是该界面。


提交表格后就能获取该页面的内容如下。



2.提交文件和图像

该例网页网址http://pythonscraping/files/form2.html

<form action="processing2.php" method="post" enctype="multipart/form-data">
Submit a jpg, png, or gif: <input type="file" name="image"><br>
<input type="submit" value="Upload File">
</form>

从html形式看出操作界面是http://pythonscraping.com/pages/processing2.php

几行代码就搞定:


最后输出上传成功的提示:



3.处理登录和 cookie

该例网页为http://pythonscraping.com/pages/cookies/login.html

查看开发者工具,可知操作界面是http://pythonscraping.com/pages/cookies/welcome.php


并且包含了主页的链接http://pythonscraping.com/pages/cookies/profile.php

用下面的代码可以实现登录


最后输出登录成功的提示:












































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值