我想修改剪贴板上的strat_url。我是日本人,我想翻译英语单词。使用weblio,即互联网上的英语词典,我想用剪贴板自动获得单词的方法。
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
import logging
from elscrapy.items import ElscrapyItem
class WordSpider(scrapy.Spider):
name = 'word'
allowed_domains = ['ejje.weblio.jp']
#start_urls = ['http://ejje.weblio.jp/']
def __init__(self, query='', *args,**kwargs):
super(WordSpider, self).__init__(*args,**kwargs)
self.start_urls = ['https://ejje.weblio.jp/content/' + query]
def parse(self, response):
word=response.xpath('//*[@id="summary"]/div[2]/p/span[2]/text()').get()
yield{
'word':word
}
我每次都改变start_urls,通过输入下面的命令。
scrapy crawl word -a query=relative
然而,当csv的输出命令时,输出低于或csv为空。
ERROR: Error processing {'word': '\n 比較上の、相対的な、相関的な、(…と)関係があって、関連して、(…に)呼応して、比例して、関係を示す、関係詞に導かれた'}
请告诉我输出csv文件的解决方案
1条答案
按热度按时间jdg4fx2g1#
我用字符串列表代替参数传递来输入翻译单词。2我认为这比手工输入更节省时间。
如果您需要翻译多个单词,您可以将 * 单词列表 * 更改为世界列表文件。
第一个关键点是POST调用返回翻译的单词在HTML中我通过Postman检查了它,在正文中有*x-www-form-urlencoded*作为附加图像。
第二个关键点是翻译的单词或语句有不同的解析,这取决于原始单词的输入。我用你的问题的例子。两种类型(单词和语句)都是作品。
在请求后呼叫后,通过删除找到已翻译的单词。
在Scrapy内部,请求对weblio.jp的POST调用(带有原始单词)
1.开机自检调用x1c 0d1x
1.这是输入文字
1.这是刮擦结果
从终端运行
1.如果你想相反的方向(英语到日语)使用这个POST选项在身体。