前言

本文接着上文,爬取企查查的公司裁判文书信息。企查查  本文中若存在不详细的地方欢迎各位大神网友提问,若有错误的地方,希望大家指正。谢谢!! ? ?

粗略分析

  1. 点击进入要查询的公司可以进入该公司的信息详情页,可以看到此处可以看到浏览器的网页链接发生改变,后面加上了“#susong”。如下图示:
  2. 拉诉讼信息拉到最下面可以看到该文书共有多少页。如果裁判文书多的公司,会需要写翻页的程序,直接想法可通过提取总页数进行翻页。需要爬取除序号后外的全部信息,包括每一个文书的详细内容。
  3. 点击案件名称可以进入裁判文书的详细内容页。如下:

程序分析

  1. items
class WenshuItem(scrapy.Item):search_name = scrapy.Field()              #收索名name = scrapy.Field()                     #公司名number = scrapy.Field()                   #序号case_name = scrapy.Field()                #案件名称cause = scrapy.Field()                    #案由release_time = scrapy.Field()             #发布时间case_num = scrapy.Field()                 #案件编号case_status = scrapy.Field()              #案件身份executive_court = scrapy.Field()          #执行法院wsview = scrapy.Field()                   #文书的详细内容
  1. spiders
码前分析

提取页码时发现页码信息通过xpath提出不出来,是通过JS加载的。

点F12,再次刷新网页,可以看到惊喜。每次点击页码时,都会访问该链接。
我们可以通过构造该链接。unique(正儿八经公司详情页链接中的数字)、companyname(公司名)、p(页数)、tab=susong、box=wenshu。

通过构造链接,进入页面。

虽然在页面中显示了页码,但是点击并不会发生跳转。我们可以可以提取总页数,实现翻页。同样我们还可以通过该页提取到文书的详情页链接,从而进行详情页提取详细内容。

代码
class QccWenshuSpider(scrapy.Spider):name = 'qcc_wenshu'#allowed_domains = ['qichacha.com']start_urls = ['https://www.qichacha.com/search?key=']page = 1def start_requests(self):#查询公司f = open('company_list.txt', 'r', encoding='utf-8')for link in f:company = urllib.parse.quote(link).replace('\n', '')url = self.start_urls[0] + companycheck_name = linkyield scrapy.Request(url, cookies=COOKIES, callback=self.parse,meta={'check_name':check_name},encoding='utf-8')#提取部分信息,并构造链接def parse(self,response):check_ming = response.meta['check_name']link = response.xpath('//tbody/tr[1]/td[2]/a/@href').extract_first()detail_link = response.urljoin(link)yield scrapy.Request(detail_link,cookies=COOKIES,callback=self.parse_wenshu,meta={'mingz':check_ming},encoding='utf-8')def parse_wenshu(self, response):#公司名name = response.xpath('//div[@class="row title"]/h1/text()').extract_first()#搜索公司名search_name = response.meta['mingz']#裁判文书#https://www.qichacha.com/company_getinfos?unique=576c21e3468a6b178bbf291e4820e896&companyname=%E5%8C%97%E4%BA%AC%E7%99%BE%E5%BA%A6%E7%BD%91%E8%AE%AF%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8&tab=susong&box=wenshu&p=1#构造链接并访问unique_str = response.url.split('/')[-1]unique = re.findall('firm_(.*).html', unique_str)[-1]company_name = urllib.parse.quote(name)wenshu = 'https://www.qichacha.com/company_getinfos?unique=' + unique + '&companyname=' + company_name + '&tab=susong&box=wenshu&p='wenshu_link = wenshu + str(self.page)yield scrapy.Request(wenshu_link,cookies=COOKIES,callback=self.parse_detail,encoding='utf-8',meta={'search_name':search_name,'name':name})#提取信息def parse_detail(self,response):data = response.xpath('//table/tr')if data:search_name = response.meta['search_name']name = response.meta['name']bigtag = response.xpath('//table[@class="ntable ntable-odd"]/tr[position()>1]')for tag in bigtag:subitem = {}subitem['search_name'] = search_namesubitem['name'] = namecase_name = tag.xpath('.//td[2]/a/text()').extract_first()subitem['case_name'] = case_name if case_name else '暂无信息'cause = tag.xpath('.//td[3]/text()').extract_first()subitem['cause'] = cause if cause else '暂无信息'release_time = tag.xpath('.//td[4]/text()').extract_first()subitem['release_time'] = release_time if release_time else '暂无信息'case_num = tag.xpath('.//td[5]/text()').extract_first()subitem['case_num'] = case_num if case_num else '暂无信息'littletag = tag.xpath('.//td[6]')case_status = littletag.xpath('string(.)').extract_first()subitem['case_status'] = case_status if case_status else '暂无信息'executive_court = tag.xpath('.//td[7]/text()').extract_first()subitem['executive_court'] = executive_court if executive_court else '暂无信息'case_detail = tag.xpath('.//td[2]/a/@href').extract()if case_detail:det_link = 'https://www.qichacha.com' + case_detail[0]yield scrapy.Request(det_link,callback=self.content_parse,meta={'basic':subitem},encoding='utf-8')page_num = response.xpath('//ul[@class="pagination"]/li/a/text()').extract()com_set = []for j in page_num:ye = re.findall('\d+',j)if ye != []:com_set.append(ye[0])page1 = com_set[-1] if page_num else 1pattern = '(https:.*?p=)\d+'next_links = re.findall(pattern,response.url)next_link = next_links[0]for i in range(2,int(page1)+1):next_url = next_link + str(i)yield scrapy.Request(next_url,callback=self.parse_detail,encoding='utf-8')#提取内容并返回itemdef content_parse(self,response):item = WenshuItem()basic_info = response.meta['basic']xiangqing = response.xpath('//div[@class="col-md-9"]/section[@id="searchlist"]/div[@id="wsview"]')content_view = xiangqing.xpath('string(.)').extract_first().replace('\n',' ').replace('\u3000','').replace('\xa0','').replace("'","").replace('"','')item['search_name'] = basic_info['search_name']item['name'] = basic_info['name']item['case_name'] = basic_info['case_name']item['cause'] = basic_info['cause']item['release_time'] = basic_info['release_time']item['case_num'] = basic_info['case_num']item['case_status'] = basic_info['case_status']item['executive_court'] = basic_info['executive_court']item['wsview'] = content_viewyield item
  1. 其它
    本程序中settings及插入数据库的pipelines信息此处不再给出。

再次声明

若有错误及改进之处,望大家批评指正。

西山小菜鸟之Scrapy学习笔记---爬取企查查网公司的裁判文书信息相关推荐

  1. 西山小菜鸟之Scrapy学习笔记---爬取企查查网站公司基本信息

    前言 本文主要采取cookie登录的方式爬取企查查网站的公司的基本信息,后期会继续发布关于爬取企查查网站上的公司的裁判文书信息.链接为:企查查  本文中若存在不详细的地方欢迎各位大神网友提问,若有错误 ...

  2. 读书笔记(十)——python简单爬取企查查网企业信息,并以excel格式存储

    2019独角兽企业重金招聘Python工程师标准>>> 今天这个小爬虫是应朋友,帮忙写的一个简单的爬虫,目的是爬取企查查这个网站的企业信息. 编程最终要的就是搭建编程环境,这里我们的 ...

  3. python 爬取企业注册信息_读书笔记(十)——python简单爬取企查查网企业信息,并以excel格式存储...

    今天这个小爬虫是应朋友,帮忙写的一个简单的爬虫,目的是爬取企查查这个网站的企业信息. 编程最终要的就是搭建编程环境,这里我们的编程环境是: python3.6 BeautifulSoup模块 lxml ...

  4. requests+selenium 爬取企查查网,1000+条数据轻轻松松

    对于这个我们就很简答了, 我们需要获取公司的具体链接 我们根据如下链接去爬取公司的具体链接: https://blog.csdn.net/qq_44936246/article/details/120 ...

  5. Scrapy学习笔记 爬取w3school

    本文学习自:https://www.urlteam.org/2016/06/scrapy-%E5%85%A5%E9%97%A8%E9%A1%B9%E7%9B%AE-%E7%88%AC%E8%99%AB ...

  6. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  7. Python爬虫:输入公司名称,爬取企查查网站中的公司信息

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于Python爬虫数据分析挖掘 ,作者:李运辰 根据输入的公司名称来爬取企查查网 ...

  8. Python3爬取企查查网站的企业年表并存入MySQL

    Python3爬取企查查网站的企业年表并存入MySQL 本篇博客的主要内容:爬取企查查网站的企业年报数据,存到mysql中,为了方便记录,分成两个模块来写: 第一个模块是爬取数据+解析数据,并将数据存 ...

  9. java企查查爬_爬取企查查热搜

    由于是第一次写作可能代码风格比较丑而且语言表达不好,各位看官请见谅. 下面进入正题临时接到一个任务爬取企查查的网络热词,并且要定时更新. 下面是要爬取的网页内容. image 之前有写过这个页面的解析 ...

最新文章

  1. 2021年春季学期-信号与系统-第十三次作业参考答案-第七小题
  2. tableau可视化数据分析60讲(十九)-tableau仪表板布局
  3. stm32 外部中断学习
  4. 解决python2.7 UnicodeDecodeError和UnicodeEncodeError问题
  5. 十字路口红绿灯plc程序_交通灯程序的最优化(西门子S7-200PLC为例)
  6. dnf机械机器人补丁_干货 | 详解工业机器人控制系统架构
  7. python风控工具_python-风控模型分析01
  8. Makefile之变量(10)
  9. c++输出的值精确到小数点后5位_直击灵魂——圆周率小数点后3位到12411亿位到底有啥用?...
  10. python flask 分页_python flask实现分页效果
  11. 网易校招测试岗位2018
  12. 一元二次方程解法的实现(Python)
  13. Linux命令:Ps -ef指令和 Kill 指令介绍
  14. 应用ceph对象存储(ceph-13.2.10)
  15. c语言字符集的作用,1.属于C语言字符集中可显示字符的是()
  16. 在c语言程序中使用数据库,数据库与C语言程序设计两者之间有什么联系?
  17. 22西电网信953上岸
  18. 第四讲项目2-1输出长方形周长和面积
  19. 奢侈时装,不再迷信千禧一代
  20. new 3ds右摇杆测试软件,new 3ds c摇杆改装教程 按起来变得更舒服

热门文章

  1. java生成唯一订单号
  2. 谷歌 Jason Wei | AI 研究的 4 项基本技能
  3. 程序员简历项目经历怎么写 ?三条原则不可忽视 【项目案例分享】
  4. ZXing.Net条形码二维码标签编辑打印软件
  5. Android——基本组件-2
  6. 【LaTeX笔记12】Latex分栏布局及模板使用
  7. 2063:【例1.4】牛吃牧草
  8. 【设计模式01】 工厂模式
  9. 京东/淘宝的手机销售榜(前4名 -- 手机品牌 --手机型号*3 --手机分辨率 -- 手机操作系统 --安卓版本号)...
  10. 网页版邮箱提取/采集软件