【问题标题】:Handling pagination in lxml处理lxml中的分页
【发布时间】:2014-06-12 15:57:15
【问题描述】:

我正在尝试镜像我编写的 ruby​​ 刮板,但仅适用于 python 环境。我决定使用 lxml 和 requests 来完成这项工作。我的问题是分页:

base_url = "http://example.com/something/?page=%s"  
for url in [base_url % i for i in xrange(10)]:  
    r = requests.get(url)

我是 python 和这个库的新手,所以我不确定执行等效 ruby​​ 代码的最佳方法:

last_pg = (page.xpath("//div[contains(@class, 'b-tabs-utility')]").text.split('of ')[-1].split(' Results')[0].to_f / 60).ceil
puts "Current Index: #{last_pg}"
for pg_number in 1..last_pg do
  puts "Getting links on page #{pg_number}"

【问题讨论】:

    标签: python html pagination web-scraping lxml


    【解决方案1】:

    通过将b-tabs-utility div 拆分为空格并获取最后一个元素来获取结果数:

    base_url = "http://example.com/something/?page=%d" 
    results_per_page = 60
    
    div = page.xpath("//div[contains(@class, 'b-tabs-utility')]")[0].text
    last_pg = int(div.split()[-2]) / results_per_page
    for i in xrange(last_pg):
        r = requests.get(base_url % i)
    

    我是assumingdiv文字格式如下,例如:... of 642 Results

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多