scrapy携带参数post爬取

个人笔记

# -*- coding: utf-8 -*-
import scrapy
import re
import time
from datetime import datetime, date, timedelta
from scrapy.http import Request
from fzggw.utils import *
from fzggw.items import FgwNewsItem
from fzggw.save_images import save_img
from fzggw.constants import *
import snowflake.client
from fzggw.replace_emoji import remove_emoji
import json



class GjcxGgwSpider(scrapy.Spider):
    name = 'gjcx_ggw'
    start_urls = ['http://sc.ndrc.gov.cn//policy/advancedQuery?']

    def get_form_data(self, page):
          return  {
                    'pageNum':f"{page}",
                    'pageSize':'10',
                    'timeStageId':'',
                    'areaFlagId':'',
                    'areaId':'',
                    'zoneId':'',
                    'businessPeopleId':'',
                    'startDate':'',
                    'endDate':'',
                    'industryId':'',
                    'unitName':'',
                    'issuedno':'',
                }

    def start_requests(self):
        form_data = self.get_form_data(1)
        yield scrapy.FormRequest(method='post', formdata=form_data,
                                 url=self.start_urls[0],dont_filter=True)

    def parse(self, response):
        yesterday = (date.today() + timedelta(days=-1)).strftime("%Y-%m-%d")
        today = date.today().strftime("%Y-%m-%d")
        back_html = response.text
        item_json = json.loads(back_html.strip())
        item_list = item_json['data']['list']
        for info in item_list:
            item = FgwNewsItem()
            item["title"] = ''.join(info['title'])
            item["url"] = (
                    "http://sc.ndrc.gov.cn//zhengcekuDetail.html?id=" + info["id"]
                )
            item['data'] = info['publishtime']

            print(item)

        depth = response.meta.get('depth', 0)
        print(depth)
        page = depth + 2
        print(page)
        yield scrapy.FormRequest(method='post', formdata=self.get_form_data(page),
                                 url=self.start_urls[0],dont_filter=True)

在这里插入图片描述
scrapy有可以直接post的scrapy.FormRequest(method=‘post’,不需要指定。当然指定也没错。
dont_filter=True 这个好像是过滤什么的,具体我也忘了。建议带上,不然会出bug。
在这里插入图片描述
此为翻页代码
在这里插入图片描述

运行

# import time
import time
import os

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

process = CrawlerProcess(get_project_settings())


if __name__ == '__main__':
    while True:
        os.system('py -m scrapy crawl hunan')
        os.system('py -m scrapy crawl zhibang')
        time.sleep(7200)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风启新尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值