当我试图抓取谷歌搜索结果时,Scrapy只会产生谷歌主页:http://pastebin.com/FUbvbhN4
这是我的蜘蛛:
import scrapy
class GoogleFinanceSpider(scrapy.Spider):
name = "google"
start_urls = ['http://www.google.com/#q=finance.google.com:+3m+co']
allowed_domains = ['www.google.com']
def parse(self, response):
filename = response.url.split("/")[-2] + '.html'
with open(filename, 'wb') as f:
f.write(response.body)
这个url作为起始url有什么问题吗?当我在浏览器中打开它时——把它放在地址栏中(而不是填写搜索表单)——我会得到有效的搜索结果。
在大多数情况下,谷歌会将蜘蛛重定向到CAPTCHA页面,bing搜索结果更容易抓取。
有一个从谷歌/必应/百度抓取搜索结果的项目https://github.com/titantse/seCrawler
是的,看起来该地址正在重定向到主页:
带有scrapy shell http://www.google.com/#q=finance.google.com:+3m+co
:的示例
...
[s] request <GET http://www.google.com/#q=finance.google.com:+3m+co>
[s] response <200 http://www.google.com/>
...
检查你的url是有意义的,它不包含参数,但#q
(不是url参数)和浏览器是识别出这一点并使其成为谷歌搜索的,所以它并不完全是url路径。
正确的谷歌搜索url是:http://www.google.com/search?q=YOURQUERY