Python 表中URL中的冗余参数

Python 表中URL中的冗余参数,python,python-2.7,scrapy,web-crawler,Python,Python 2.7,Scrapy,Web Crawler,大家好 我目前正在使用Python2.7开发一个Scrapy Webcrawler,虽然我知道C和Web语言,但我对Python和Scrapy库有点迷茫 我希望做的是抓取一个返回JSON数据的URL,并根据预定义的参数表更改URL中的参数 URL如下所示: xxx&To=yyy&number=42 在这里,我想替换存储在不同文件中的一组数据中的所有xxx,yyy,42,并使用每个参数循环爬虫程序 我知道我能做到: def __init__(self, fromdat='xxx', tod

大家好

我目前正在使用Python2.7开发一个Scrapy Webcrawler,虽然我知道C和Web语言,但我对Python和Scrapy库有点迷茫

我希望做的是抓取一个返回JSON数据的URL,并根据预定义的参数表更改URL中的参数

URL如下所示:

xxx&To=yyy&number=42

在这里,我想替换存储在不同文件中的一组数据中的所有xxx,yyy,42,并使用每个参数循环爬虫程序

我知道我能做到:

    def __init__(self, fromdat='xxx', todat='yyy'):
    self.start_urls = ["http://helloworld.com/data?From=%s&To=%s/" % (fromdat, todat)]
然后在命令行中使用-a命令指定参数,但这需要人工干预,我不希望这样

我也尝试过:

class QuotesSpider(scrapy.Spider):
name = "histo"
tab1=[1000,10]

def start_requests(self, tab1):
    for i in tab1:
        urls = 'http://www.helloworld.com/data?number=%d'% i
        yield scrapy.Request(url=url, callback=self.parse)


    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'histo-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)
        self.log('Saved file %s' % filename)
但这似乎也不管用

我有点迷路了,所以欢迎任何帮助!:)

提前非常感谢,祝你有愉快的一天

不接受任何其他参数,请执行以下操作:

class QuotesSpider(scrapy.Spider):
    name = "histo"
    tab1 = [1000,10]

    def start_requests(self):
        for i in self.tab1:
            urls = 'http://www.helloworld.com/data?number=%d' % i
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'histo-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)
        self.log('Saved file %s' % filename)

请注意
parse()
是如何缩进的。

非常感谢,它确实有效!是的,很抱歉,关于Python中的缩进,我有点麻烦,我真的不习惯它,但是在纠正它之后,它工作得很好。然而,在恢复爬虫收集的数据方面,我仍然有一个小问题:从您的代码中,我刚刚在“屈服”中修改了从(url=url)到(url=url)的请求,以便废弃我的数据。但是,刮取的数据首先写入一个文件,然后用URL中包含的数据覆盖第二个参数。我的愿望是把所有的数据合并到一个文件中..谢谢lot@M.C.好的,我想你的意思是使用
a
模式而不是
wb
。让我知道这就是你的意思。谢谢。感谢您抽出时间,实际上,在open(文件名为“wb”)中使用“a”模式而不是“wb”,不会改变任何东西(我在Windows上,但project在Raspberry Pi上运行spider)。我的代码被支持在单独的html文件中编写每个提取,但是数据在同一个文件中被覆盖,我不明白为什么。