您好我正在抓一个像下面这样的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中的哈希片段的概念。
提前致谢...............
答案 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;,]