Python 如何为不同的网站使用一个bot

Python 如何为不同的网站使用一个bot,python,scrapy,Python,Scrapy,我想刮2个不同的网站。其中一个是纯html,另一个是javascript(我需要splash来处理)。 所以我有几个问题: 我能用一个机器人(html和javascript)抓取两种不同类型的网站吗?我以前做过两个html网站,效果不错,但如果其中一个是javascript,我想知道这是否也可以 如果第一个问题是可能的,我可以单独导出json吗?比如url1 output1.json,url2 output2.json 正如你从我的代码中看到的,代码需要编辑,我不知道当两种不同类型的网站需要被删

我想刮2个不同的网站。其中一个是纯html,另一个是javascript(我需要splash来处理)。 所以我有几个问题:

  • 我能用一个机器人(html和javascript)抓取两种不同类型的网站吗?我以前做过两个html网站,效果不错,但如果其中一个是javascript,我想知道这是否也可以

  • 如果第一个问题是可能的,我可以单独导出json吗?比如url1 output1.json,url2 output2.json

  • 正如你从我的代码中看到的,代码需要编辑,我不知道当两种不同类型的网站需要被删除时,我该怎么做

  • 有没有scrapy的工具来比较json?(这两个不同的网站内容几乎相同。我想以output1.json为基础,检查output2.json中的某些值是否不同

  • 我的代码:

    类MySpider(scrapy.Spider): 名称='mybot' 允许的_域=['url1','url2'] def start_请求(自我): URL=( (self.parse1,'url1'), (self.parse2,'url2'), ) 对于callbackfunc,url中的url: 生成scrapy.Request(url,callback=callbackfunc) #事实上,url2必须用于javascript网站,所以我需要在这里清楚地显示 def parse1(自我,响应): 通过 def parse2(自我,响应): 通过
    是的,你可以用同一个爬行器抓取多个站点,但如果它们太不同就没有意义了。你已经找到了这样做的方法:
    允许\u域
    启动\u请求
    (或
    启动URL
    )。但是,导出到不同的文件并不简单。您必须编写导出代码

    我认为每个站点有一个spider是一个不错的选择。如果他们共享一些代码,你可以有一个
    BaseSpider
    类,你的spider可以从中继承

    关于您提到的javascript站点,您确定不能直接请求其API吗?

    可能存在重复的