Skip to content
openlaw.cn文书爬虫
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
account
README.md
account.txt
config.py
cookie.txt
count.txt
download.py
ids.txt
page.txt
spiderUrl.py
start.py

README.md

openlaw.cn网站爬虫

第一次写py,边学边写了这个从openlaw爬取文书内容保存为txt文件的小内容。

因为openlaw做了防护,所以使用selenium模拟浏览器访问。

TXT文档说明

  • account.txt 记录当前使用哪个账户登录openlaw
  • account/account.txt 记录所有的openlaw Account,因为openlaw的每个账户每天访问次数限制,所以需要多个账户
  • account/Y-m-d.txt 记录某一天哪些账户已经不可以再次访问
  • cookie.txt 记录登陆之后的cookie
  • count.txt 记录已经下载的文书数量
  • page.txt 记录爬到了哪一页
  • ids.txt 记录每一页爬取下来的文书id

spiderUrl.py

spiderUrl.py分页爬取文书的id,openlaw每一篇文书都有一个唯一的浏览id

  • spiderUrl.get_url()可配置具体的搜索条件,参考openlaw的搜索url设置。
  • spiderUrl.get_download_ids()每三秒执行一次,执行前判断ids是否为空空文件则爬取下一页的文书id,否则pass

download.py

根据文书的唯一浏览id,下载文书内容到txt文件,所有下载的文件位于judgements文件夹下

  • download.save_content(content_map, id) 可以配置文件保存位置

  • 每次从ids.txt文件中读取完ids会将ids.txt置空,让spiderUrl爬取下一页的ids

  • download.download()函数将页面的内容处理为一个BeautifulSoup穿个get_content()函数处理页面内容。

  • download.get_content(soup) 讲页面内容进行处理返回

{

  'content': content,# 文书内容

  'title': title, # 文书标题

  'header': header # 文书的时间等一些说明

 }
  • download.save_content(content_map, id) 将get_content()返回的内容写进文档

config.py

爬虫的共享txt文件的读,和打开浏览器,登录,更换账号函数写在这个文件内。

登录的密码为同一的密码

start.py

开启两个线程,一个让spiderUrl爬取文书ids,一个让download下载文书,两个互不干扰,提高效率。

问题

判断登录失效以及读写共享文件时没有做线程保护

You can’t perform that action at this time.