spiders框架——post 和 页面的二次跳转

# -*- coding:utf-8 -*-
import scrapy
from bs4 import BeautifulSoup
from p1.items import P1Item
import json
import lxml
class XiaoHuarSpider(scrapy.Spider):
    name = "keche"
    def start_requests(self):
        #第一个url请求,定义函数 start_requests
        # if post 请求  yield scrapy.FormRequest(url=url, headers=headerscallback=默认的是parse函数)
        #if get 请求     yield scrapy.Request(url=a7, headers=headers,callback=self.响应页要传的函数名
        for i in range(1,2):
            url = '****'+str(i)
            yield scrapy.FormRequest(url=url,
                                     headers=headers)
    def parse(self, response): # 对页面一进行解析
        # print(response, type(response))
        # from scrapy.http.response.html import HtmlResponse
        # print(response.body_as_unicode())
        a = {}
        a = json.loads(response.text)['data']
        for j in range(0, len(a)):
            sss = a[j]
            a1 = sss['cah']
            a2 = sss['cajlb']
            a3 = sss['cbt']
            a4 = sss['cslfyMc']
            a5 = sss['cygMc']
            a6=response.url
            a7='***'+sss['cBh']#从第一个页面取得的链接
            yield scrapy.Request(url=a7,headers=headers},callback=self.two_parse)#对这个链接进行get请求

    def two_parse(self,response):#对页面二进行解析
        Soup=BeautifulSoup(response.text,'lxml')
        alist=Soup.find('div',class_='fd-fix')
        a1=alist.find('h2').text
        a2=alist.find('h5').text
        a3=alist.find('div',class_='fd-alt-all').text
        a4=''
        a5=''
        a6=''
        item=P1Item(a1=a1,a2=a2,a3=a3,a4=a4,a5=a5,a6=a6)
        yield item #返回要取得的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值