【发布时间】:2018-01-19 05:09:21
【问题描述】:
我正在尝试抓取分页网页,但它给了我第一个 每次迭代中的页面。当我在浏览器中单击它时, 内容不同。
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
这是输出:
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、...)的分页器项如下所示
<a rel="nofollow" href="http://www.x.y/z/a-b#/page-2"> <span>2</span> </a>
为什么当我在浏览器中打开 URL(通过点击或通过地址栏)和通过代码获取时结果页面不同?
【问题讨论】:
-
您正在重用
url变量,因此第二次循环时,您没有将%s替换为str(i)。但这应该会导致错误,你没有得到一个吗? -
@PauloAlmeida “每次迭代中的 url 都会改变”。如果没有,这太容易了。 (这就是我打印它的原因,可以肯定)。
-
我不确定我是否理解。
url以上述代码中未描述的方式发生变化?那么具体情况如何变化呢? -
@PauloAlmeida 你说得对。我不知道,我怎么能忽略它。我将在循环中使用另一个变量。我将删除问题。谢谢。
-
@PauloAlmeida 最后,我宁愿编辑了这个问题,因为问题仍然存在,尽管 url2 发生了变化。 (第一次,我使用了 urlToSoup(url % str(i))),而不是出于提问目的而更改了它,并犯了您在第一条评论中注意到的错误。所以,我们可以删除所有的 cmets 并重新开始。
标签: python pagination beautifulsoup