首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在每次迭代中给出第一页的分页

在每次迭代中给出第一页的分页
EN

Stack Overflow用户
提问于 2017-08-10 19:49:13
回答 1查看 169关注 0票数 1

我试图刮分页的网页,但它给我的第一页在每一次迭代。当我在浏览器中单击它时,内容是不同的。

代码语言:javascript
复制
url = "http://www.x.y/z/a-b#/page-%s"

for i in range(1, 10):
  url2 = url % str(i)
  soup = urlToSoup(url2)
  print url2
  # url2 changes in every iteration
  # Here it will print the same product list in every iteration

这是输出:

代码语言:javascript
复制
http://www.x.y/z/a-b#/page-1
http://www.x.y/z/a-b#/page-2
http://www.x.y/z/a-b#/page-3
http://www.x.y/z/a-b#/page-4
http://www.x.y/z/a-b#/page-5
http://www.x.y/z/a-b#/page-6
http://www.x.y/z/a-b#/page-7
http://www.x.y/z/a-b#/page-8
http://www.x.y/z/a-b#/page-9

页2的寻呼机项(以及类似的3、4、.)如下所示

代码语言:javascript
复制
<a rel="nofollow" href="http://www.x.y/z/a-b#/page-2"> <span>2</span> </a>

为什么当我在浏览器中打开URL (通过单击或地址栏)时,以及当我通过代码获得URL时,结果页面是不同的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-10 21:46:51

将文本添加到“片段标识符”(即在#之后)参见https://www.w3.org/DesignIssues/Fragment.html

片段标识符是URI后面的字符串,散列之后的字符串,它将特定的内容标识为文档的一个函数。对于用户界面Web文档(如HTML ),它通常标识一个部件或视图。例如,在对象中

RFC3986

片段标识符在取消引用之前与URI的其余部分分离,因此片段本身中的标识信息仅由用户代理解除引用,而不管URI方案如何。虽然这种单独的处理往往被认为是信息的丢失,特别是随着资源的推移而准确地重定向引用,但它也有助于防止信息提供者拒绝参考作者有选择地引用资源中的信息的权利。间接引用还为使用URI的系统提供了额外的灵活性和可扩展性,因为新的媒体类型比新的标识方案更容易定义和部署。

因此,您要将索引添加到未发送到服务器的URL的一部分。它仅供客户端使用,“仅由用户代理取消引用”。服务器每次迭代都会看到相同的URL。

页面最有可能呈现的方式是,有一些JavaScript读取片段标识符并发出另一个请求以获取数据或确定要显示的数据的哪一部分。

我建议检查页面使用Live或其他一些工具发出的所有请求,看看是否有第二个请求可以使用或使用JavaScript呈现技术,如Selenium、干燥或PyQT5,有关详细信息,请参阅我对刮谷歌财务(BeautifulSoup)的回答。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45622383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档