0

嗨,我正在抓取一个具有如下 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.so 我用下面start_urlexclamatory mark(!)after替换了 url# 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,根据这篇文章中的概念,我需要将输出 URL 转换为?_escaped_fragment_=包含#(我的意思是原始 URL)的 URL 以完全解析页面,而不会忽略哈希片段。如何转换它。

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

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

4

1 回答 1

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 = ['themobilestore.in/home-mobiles-&-tablet/?page=1', 'themobilestore.in/home-mobiles-&-tablet/?page=2', ]

于 2012-06-19T08:39:34.807 回答