【问题标题】:Dryscrape: scrape child node data from parent node list using xpathDryscrape:使用 xpath 从父节点列表中刮取子节点数据
【发布时间】:2017-04-25 06:07:23
【问题描述】:

我试图使用 dryscrape 和 python 抓取http://quotes.toscrape.com/ 以用于学习目的。我能够使用 class="quote" 获取所有 div。想遍历 class="quote" 的 div 列表,并使用 xpath 从此父元素获取多个数据。

import dryscrape
from bs4 import BeautifulSoup
session = dryscrape.Session()
url = 'http://quotes.toscrape.com/'
print 'Visiting the URL...'
session.visit(url)
print 'Status: ', session.status_code()
for div in session.xpath("//div[@class='quote']"):
    # please help me to scrape author and quote for each div elements

【问题讨论】:

    标签: python web-scraping dryscrape


    【解决方案1】:
    import requests
    from bs4 import BeautifulSoup
    url = 'http://quotes.toscrape.com/'
    r = requests.get(url)
    soup = BeautifulSoup(r.text)
    for div in soup.findAll("div", {"class": "quote"}):
      print('Quote : ' + div.find('span').get_text())
      print('Author : ' + div.find('small').get_text())
    

    【讨论】:

      【解决方案2】:

      我们可以遍历每个 xpath 元素,这些元素将是具有单个元素内容的对象。每个对象都有获取数据的方法。

      import dryscrape
      session = dryscrape.Session()
      url = 'http://quotes.toscrape.com/'
      print 'Visiting the URL...'
      session.visit(url)
      print 'Status: ', session.status_code()
      for div in session.xpath("//div[@class='quote']"):
          print "Quote: ", div.at_xpath(".//span").text()
          print "Author: ", div.at_xpath(".//small").text()
      

      【讨论】:

        猜你喜欢
        • 2015-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多