利用Requests和Beautifulsoup爬取上海市高级人
2018-12-03 本文已影响0人
平凡的浩仔
刚开始学习爬虫,尝试着使用Requests和Beautifulsoup对上海市高级人民法院开通公告信息(http://www.hshfy.sh.cn/shfy/gweb2017/ktgg_search.jsp?zd=splc)进行抓取。
一、导入所需库
![](https://img.haomeiwen.com/i15209035/455421c59cc1a13e.png)
二、编写相关函数
1、获取网页
![](https://img.haomeiwen.com/i15209035/597d04817a0e1b46.png)
函数get_html(url,data)有两个参数,url表示需要获取的目标url;data参数表示携带在url后的数据(这里有最早开庭时间‘pktrqks’、最晚开庭时间‘ktrqjs’和页数‘page_num’),使用携带的参数可以实现翻页功能,对每一页进行数据抓取。
response.encoding="gbk"将网页的编码设置为“gbk”,不然抓取出的html会乱码。
2、解析传入的网页,抽取出网页中的字段内容
![](https://img.haomeiwen.com/i15209035/d66ea6bf81e199a9.png)
这里yield关键字的作用是将每行的关键字内容形成一个 generator,可以迭代,优点是这种方式在数据量较大时比存成列表然后再返回占用的内存会少很多。
3、将爬取的数据写入文件中
![](https://img.haomeiwen.com/i15209035/b77f61639f1b4388.png)
4、获取一共需要爬取的页数
由于原网页是翻页的,我们所需要的信息分布在多个页上,首先获取总共需要爬取的页数,然后再进行信息爬取。
![](https://img.haomeiwen.com/i15209035/a35a6d6e56e423ad.png)
![](https://img.haomeiwen.com/i15209035/85b35b72c95c51a7.png)
这里做了异常处理,当爬虫遇到网站反爬虫时,程序捕获异常并休眠设定的时间ERROR_SLEEP_TIME,继续运行程序抽取到<strong></strong>标签中的内容,该标签中的内容是所有符合筛选条件的记录数,计算得出总共的页数。
三、主函数
![](https://img.haomeiwen.com/i15209035/cf1dda9223c5da5c.png)
![](https://img.haomeiwen.com/i15209035/cfe4df3f2067a7bd.png)
![](https://img.haomeiwen.com/i15209035/d8dddea26c95f612.png)
![](https://img.haomeiwen.com/i15209035/4fcdda4de80244a3.png)
四、爬取结果
![](https://img.haomeiwen.com/i15209035/53c312e2e3fe2687.png)