double07 发表于 2021-4-6 21:20

scrapy 重定向困惑?

本帖最后由 double07 于 2021-4-6 21:29 编辑

import random
import time

import scrapy
from job.items import JobItem# 导入items中招聘各标签的建模


class LiepinSpider(scrapy.Spider):
    name = 'liepin'
    # 2.检查allowed_domains
    allowed_domains = ['www.liepin.com']
    # 1.修改URL
    start_urls = [
      'https://www.liepin.com/zhaopin/?compkind=&dqs=&pubTime=3&pageSize=40&salary=30%24&compTag=&sortFlag=15°radeFlag=0&compIds=&subIndustry=&jobKind=&industries=200&compscale=&key=分析&curPage=0']


    def parse(self, response):
      # 提取数据
      # 获取所有职位节点列表

      node_list = response.xpath('//ul[@class="sojob-list"]/li')
      # 遍历节点列表
      for node in node_list:
            item = JobItem()
            item['name'] = node.xpath('./div/div/h3/a/text()').extract_first().strip()
            item['company'] = node.xpath('./div/div/p/a/text()').extract_first().strip()
            item['address'] = node.xpath('.//*[@class="area"]/text()').extract_first().strip()
            item['salary'] = node.xpath('./div/div/p/span/text()').extract_first().strip()
            item['date'] = node.xpath('./div/div/p/time/text()').extract_first().strip()
            item['link'] = node.xpath("./div/div/h3/a/@href").extract_first().strip()
            if 'https://www.liepin.com' not in node_list:
                item['link'] = response.urljoin(node.xpath("./div/div/h3/a/@href").extract_first().strip())
            else:
                item['link'] = node.xpath("./div/div/h3/a/@href").extract_first().strip()
            yield item

            # 构建详情页面请求
#yield scrapy.Request(
#url=item['link'],
#callback=self.parse_detail,
#dont_filter=True,
#meta={'item': item}
#)


#def parse_detail(self, response):
#item = response.meta['item']
#item['duty'] = response.xpath('//div[@class="content content-word"]/text()').extract()
#print(item)


把上述代码37-49行注释掉,运行代码正常,去掉注释,就出现下列错误提示:


方法试过很多,没办法解决,请大佬指点。主要目的是把两个页面的数据通过meta拼接在一起,但拼接代码写好,就出现重定向的提示

JKTeller 发表于 2021-4-6 22:23

看着好像被反爬了?

luanshils 发表于 2021-4-6 23:05

有点迷,注释不是不运行么,怎么有注释和没注释是两个结果

double07 发表于 2021-4-6 23:08

luanshils 发表于 2021-4-6 23:05
有点迷,注释不是不运行么,怎么有注释和没注释是两个结果

把注释注掉,就能把多页面数据链接在一起了,但问题就出这,出现重定向提示

luanshils 发表于 2021-4-6 23:59

double07 发表于 2021-4-6 23:08
把注释注掉,就能把多页面数据链接在一起了,但问题就出这,出现重定向提示

我理解错了

super.me 发表于 2021-4-7 12:11

你对scrapy的理解有问题,你在parse yield item,为什么要在这里构造新的请求?

double07 发表于 2021-4-7 14:08

super.me 发表于 2021-4-7 12:11
你对scrapy的理解有问题,你在parse yield item,为什么要在这里构造新的请求?
漏说了一句,如果去掉最后两段的注释,前提是把parse yield item先注释
页: [1]
查看完整版本: scrapy 重定向困惑?