Scrapy忽略URL中#tag后的内容

时间:2012-06-18 07:58:58

标签: python url scrapy

您好我正在抓一个像下面这样的URl的网站

http://www.example.com/categories-Mobile-Phones.aspx#RSS=pgZZ1QQdivZZctl00_ContentPlaceHolder1_ctl00_ctl03

我已将其放入start_url并请求回复,但我收到了以下回复

<200 http://www.example.com/categories-Mobile-Phones.aspx>

也就是说,它只是忽略了hash tag之后的内容,所以我读了一些帖子并且知道了,当我们请求带有哈希标记的url时,服务器只是忽略了哈希片段,我的意思是哈希片段用于加载ajax或javascript requests的一些额外信息。所以我在start_url后用exclamatory mark(!)替换了# tag中的网址,如下所示

http://www.example.com/categories-Mobile-Phones.aspx#!RSS=pgZZ1QQdivZZctl00_ContentPlaceHolder1_ctl00_ctl03

现在输出

<GET http://www.example.com/categories-Mobile-Phones.aspx?_escaped_fragment_=RSS=pgZZ1QQdivZZctl00_ContentPlaceHolder1_ctl00_ctl03

我是通过阅读此帖https://developers.google.com/webmasters/ajax-crawling/docs/getting-started完成此操作的,根据此帖中的概念,我需要将输出网址?_escaped_fragment_=转换为包含#的网址(我的意思是原始URL)完全解析页面而不用scrapy忽略哈希片段。如何转换它。

我希望我解释得很好,如果不是,请纠正我,让我知道如何使scrapy不忽略URL中的哈希片段的概念。

提前致谢...............

1 个答案:

答案 0 :(得分:0)

没关系。无论是否使用哈希,URI都指向完全相同的页面。

哈希之后的东西是片段标识符。您的浏览器将使用它将页面滚动到页面的特定部分。

喜欢这个......

http://www.w3.org/TR/html4/intro/intro.html#h-2.1.2

......而这......

http://www.w3.org/TR/html4/intro/intro.html

..都检索同一页面。前者只是告诉你在页面上的哪个位置开始阅读。

编辑:

start_urls = [&#39; themobilestore.in/home-mobiles-& -tablet /?page = 1&#39;,&#39; themobilestore.in/home-mobiles-& -tablet /?page = 2&#39;,]