在scrapy中发送post请求可以用 FormRequest,但发送的 Content-Type 的值是 application/x-www-form-urlencoded ,不适用Content-Type不支持这种情况的网站

这是可以用 Request 发送post请求,如下:

from scrapy.http import Request

yield Request(
                url=self.search_url, method='POST',
                body=json.dumps(post_data),
                headers={'Content-Type': 'application/json'},
                callback=self.parse,
                meta={'item': deepcopy(item)}
            )

脚本运行Scrapy

from scrapy.crawler import CrawlerProcess
from neuSpider.spiders.zcy import SnSpider
from scrapy.utils.project import get_project_settings
settings = get_project_settings()
settings['DUPEFILTER_CLASS'] = "neuSpider.dupefilters.NODupeFilter"
process = CrawlerProcess(settings)
process.crawl(SnSpider, key='手机',  max_page=1, page_size=10, idle_num=2, clean_redis='yes')
process.start()

自定义过滤类  DUPEFILTER_CLASS

from scrapy_redis.dupefilter import RFPDupeFilter


class NODupeFilter(RFPDupeFilter):
    def request_seen(self, request):
        return False

 

验证码识别

爬虫杂记2_ide

 截屏:

爬虫杂记2_post请求_02

爬虫杂记2_post请求_03

动作链:

爬虫杂记2_post请求_04

 

 爬虫杂记2_ide_05

 

 =========发post请求

 爬虫杂记2_json_06

 

 ======= cookie

爬虫杂记2_json_07

 == =====模拟登录

 

 爬虫杂记2_ide_08

 爬虫杂记2_json_09

 ========获取cookie信息

爬虫杂记2_post请求_10

 爬虫杂记2_post请求_11

 =======利用scrapy登录人人

爬虫杂记2_json_12

 

 爬虫杂记2_json_13