我正在使用Scrapy檢索關於https://www.indiegogo.com上項目的信息。我想用url格式www.indiegogo.com/projects/[NameOfProject]
來抓取所有頁面。但是,我不確定如何在抓取過程中訪問所有這些網頁。我無法找到硬編碼鏈接到所有/projects/
頁面的母版頁。所有項目似乎都可以從https://www.indiegogo.com/explore(通過可見鏈接和搜索功能)訪問,但我無法確定將返回所有頁面的鏈接/搜索查詢集。我的蜘蛛代碼如下。這些start_urls和rules約有6000頁,但我聽說應該有接近10倍的那麼多。使用Scrapy查找並刮除特定格式的所有URL
關於具有參數的網址:使用的filter_quick
參數值來自「探索」頁面上的「趨勢」,「最終倒數」,「本週新增」和「資金最豐富」的鏈接,顯然缺少不受歡迎和資金不足項目。 per_page
url參數沒有最大值。
有什麼建議嗎?謝謝!
class IndiegogoSpider(CrawlSpider):
name = "indiegogo"
allowed_domains = ["indiegogo.com"]
start_urls = [
"https://www.indiegogo.com/sitemap",
"https://www.indiegogo.com/explore",
"http://go.indiegogo.com/blog/category/campaigns-2",
"https://www.indiegogo.com/explore?filter_browse_balance=true&filter_quick=countdown&per_page=50000",
"https://www.indiegogo.com/explore?filter_browse_balance=true&filter_quick=new&per_page=50000",
"https://www.indiegogo.com/explore?filter_browse_balance=true&filter_quick=most_funded&per_page=50000",
"https://www.indiegogo.com/explore?filter_browse_balance=true&filter_quick=popular_all&per_page=50000"
]
rules = (
Rule(LinkExtractor(allow=('/explore?'))),
Rule(LinkExtractor(allow=('/campaigns-2/'))),
Rule(LinkExtractor(allow=('/projects/')), callback='parse_item'),
)
def parse_item(self, response):
[...]
旁註:還有其他的URL格式www.indiegogo.com/projects/[NameOfProject]/[OtherStuff]
,要麼重定向到所需的URL格式,或給404錯誤,當我嘗試加載它們在瀏覽器中。我假設Scrapy正確地處理了重定向和空白頁面,但會聽取驗證這一點的方法。
你有沒有解決這個問題? – bnussey 2015-10-08 00:25:36