鱼C论坛

 找回密码
 立即注册
查看: 1447|回复: 5

scrapy爬虫问题,抓取网站人名、详情、链接等信息

[复制链接]
发表于 2019-1-10 11:30:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在某网页爬取人名、部门、个人详情、详情链接等信息。
现在是存在这种情况,在不同的部门中,存在相同的人名,对应着相同的详情连接和个人详情。但是scrapy只会抓取其中一个人的信息,会漏掉另外部门该人名的信息。
  1. import scrapy
  2. from zggcy.items import ZggcyItem
  3. import copy

  4. class YuanshiSpider(scrapy.Spider):
  5.     name = 'yuanshi'
  6.     allowed_domains = ['cae.cn']
  7.     start_urls = ['http://www.cae.cn/cae/html/main/col53/column_53_1.html']

  8.     def parse(self, response):
  9.         item = ZggcyItem()
  10.         for each in response.xpath('//div[@class="list2_navm clearfix"]/ul/li'):
  11.             item['group'] = each.xpath('./a/text()').extract_first()
  12.             item['type'] = '中国工程院院士'
  13.             group_url = each.xpath('./a/@href').extract_first()
  14.             group_url = response.urljoin(group_url)
  15.             yield scrapy.Request(url=group_url, meta={'item': copy.deepcopy(item)}, callback=self.parse2)

  16.     def parse2(self,response):
  17.         item = response.meta['item']
  18.         for each in response.xpath('//div[@class="right_md_ysmd"]/div/ul/li'):
  19.             item['link'] = each.xpath('./a/@href').extract_first()
  20.             item['name'] = each.xpath('./a/text()').extract_first()
  21.             detail_url = each.xpath('./a/@href').extract_first()
  22.             detail_url = response.urljoin(detail_url)
  23.             yield scrapy.Request(url=detail_url, meta={'item': copy.deepcopy(item)}, callback=self.parse3)

  24.     def parse3(self, response):
  25.         item = response.meta['item']
  26.         item['detail'] = ''.join(response.xpath('//div[@class="intro"]/p/text()').extract())
  27.         yield item
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-10 11:30:57 | 显示全部楼层
请问我应该怎么修改代码,才能把信息抓全!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-10 11:56:20 | 显示全部楼层
好吧,我自己解决了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-10 12:29:11 | 显示全部楼层
TJstyles 发表于 2019-1-10 11:56
好吧,我自己解决了。。。

怎么解决的,分享一下啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-10 15:13:30 | 显示全部楼层
把dont_filter的值改成TRUE就行了。因为在默认情况下值为false,scrapy是不会对同一个URL执行多次下载请求,会过滤掉之后的URL请求,修改为true之后就可以重复请求多次了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-10 15:14:17 | 显示全部楼层
海风zZ 发表于 2019-1-10 12:29
怎么解决的,分享一下啊

见楼下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-30 11:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表