Python 爬虫 scrapy post请求 start_request()方法

发布时间 2023-04-23 10:26:11作者: 木去

scrapy post请求

以百度翻译为例:

import scrapy
import json


class TransSpiderSpider(scrapy.Spider):
    name = "trans_spider"
    allowed_domains = ["baidu.com"]
    # start_urls = ["https://fanyi.baidu.com/v2transapi?from=zh&to=en"]

    # 重写方法 开始请求的方法
    def start_requests(self):
        # words = input("请输入要翻译的内容:")
        start_url = "https://fanyi.baidu.com/v2transapi?from=zh&to=en"
        params = {
            "from": "zh",
            "to": "en",
            "query": "你好",
            "transtype": "realtime",
            "simple_means_flag": "3",
            "sign": "232427.485594",
            "token": "7614c396a3a9927725443096dc7f491f",
            "domain": "common"
        }
        # 将post请求的结果交给parse函数处理
        yield scrapy.FormRequest(url=start_url, formdata=params, callback=self.parse)

    def parse(self, response):
        data_dict = json.loads(response.text)
        print(data_dict['trans_result']['data'][0]['dst'])