scrapy学习案例_百度翻译

scrapy学习案例_百度翻译

此案例使用scrapy post请求

创建scrapy项目
scrapy startproject fanyi_post
2. 创建爬虫文件(../fanyi_post/fanyi_post/spiders)
scrapy genspider fanyi https://fanyi.baidu.com/sug

爬取思路

  1. post请求与start_urls和parse没有任何关系
  1. 使用start_requests函数来写post请求
def start_requests(self):
    word = input('input:')
    url = "https://fanyi.baidu.com/sug"
    data = {
    	'kw': word
    }
  1. 使用scrapy.FormRequest类发送post请求
yield scrapy.FormRequest(url=url, formdata=data, callback=self.parse_second)

这段代码是使用Scrapy框架中的FormRequest类来发送POST请求,其中包括了要提交的表单数据data和目标URL url。一般来说,这段代码用于模拟用户在网页上填写表单并提交的行为。一旦服务器响应了这个请求,它会调用parse_second方法来处理响应并提取数据。

  1. 解析并打印
def parse_second(self, response):

	content = response.text
	obj = json.loads(content)

	for i in obj['data']:
    	print(i['v'])
3. 运行文件
scrapy crawl fanyi

代码

  • ../fanyi_post/fanyi_post/spiders/fanyi.py
import scrapy
import json


class FanyiSpider(scrapy.Spider):
    name = "fanyi"
    allowed_domains = ["fanyi.baidu.com"]
    # start_urls = ["https://fanyi.baidu.com/sug"]

    def start_requests(self):
        word = input('input:')
        url = "https://fanyi.baidu.com/sug"
        data = {
            'kw': word
        }

        yield scrapy.FormRequest(url=url, formdata=data, callback=self.parse_second)


    def parse_second(self, response):

        content = response.text
        obj = json.loads(content)

        for i in obj['data']:
            print(i['v'])

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值