找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2890|回复: 0

[求助] python3 scrapy post之后get网页出错

1

主题

1

帖子

1

积分

贫民

积分
1
awds132475 发表于 2018-2-12 10:54:40 | 显示全部楼层 |阅读模式
  1. # -*- coding: utf-8 -*-
  2. import scrapy


  3. class TestSpider(scrapy.Spider):
  4.     name = 'test'

  5.     def start_requests(self):
  6.         url = 'https://www.lagou.com/gongsi/8523.html'
  7.         headers = {
  8.             'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36',
  9.             'Cookie': '_putrc=4BDD5841CFB6CF89; login=true;'
  10.         }
  11.         yield scrapy.Request(url=url,
  12.             callback=self.parse_page,
  13.             headers=headers)

  14.     def parse_page(self, response):
  15.         print(response.text)
复制代码
上面这个是用get方式可以正常得到网页的代码
  1. # -*- coding: utf-8 -*-
  2. import scrapy
  3. import json


  4. class LagSpider(scrapy.Spider):
  5.     name = 'lag'
  6.     allowed_domains = ['www.lagou.com']
  7.     pn=1

  8.     def start_requests(self, pn=1):
  9.         headers = {
  10.             "User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)",
  11.             'Referer': "https://www.lagou.com/jobs/list_%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8?labelWords=&fromSearch=true&suginput="
  12.         }
  13.         url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false&isSchoolJob=0'
  14.         yield scrapy.FormRequest(
  15.             url=url,
  16.             formdata={
  17.                 'first': 'true',
  18.                 'pn': str(pn),
  19.                 'kd': '网络安全'
  20.             },
  21.             callback=self.parse_page,
  22.             headers=headers
  23.         )

  24.     def parse_page(self, response):
  25.         print('11111111111111')
  26.         datas = json.loads(response.text)['content']
  27.         # if datas['pageNo'] * datas['pageSize'] < datas['positionResult']['totalCount']:
  28.         #     self.pn += 1

  29.         datas = datas['positionResult']['result']
  30.         data = datas[0]
  31.         lagou_company_url = 'https://www.lagou.com/gongsi/' + \
  32.             str(data['companyId']) + '.html'
  33.         print(lagou_company_url)
  34.         headers = {
  35.             'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36',
  36.             'Cookie': '_putrc=4BDD5841CFB6CF89; login=true;'
  37.         }
  38.         yield scrapy.Request(lagou_company_url, callback=self.parse_company, headers=headers, method='GET')
  39.         print('3333333333333333333')

  40.     def parse_company(self, response):
  41.         print(response.text)
  42.         print('22222222222222222')
复制代码
这个是post 文件之后,利用文件内容拼接url,之后Request 网页的方法,但是却出现请求内容不对的错误
不知道这个是什么问题,望解答
回复

使用道具 举报

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

本版积分规则

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