我只是在学习python,并决定玩一些网站搜索。
我创造了1个有效,而第二个,据我所知几乎完全相同,不起作用,我无法找出原因。
from lxml import html
import requests
page = requests.get('https://thronesdb.com/set/Core')
tree = html.fromstring(page.content)
cards = [tree.xpath('//a[@class = "card-tip"]/text()'),tree.xpath('//td[@data-th = "Faction"]/text()'),
tree.xpath('//td[@data-th = "Cost"]/text()'),tree.xpath('//td[@data-th = "Type"]/text()'),
tree.xpath('//td[@data-th = "STR"]/text()'),tree.xpath('//td[@data-th = "Traits"]/text()'),
tree.xpath('//td[@data-th = "Set"]/text()'),tree.xpath('//a[@class = "card-tip"]/@data-code')]
print(cards)
那个人做了我期望的事情(我知道它并不漂亮)。它从网站上的表格中获取某些元素。
这个返回[[]]
:
from lxml import html
import requests
page = requests.get('http://www.redflagdeals.com/search/#!/q=baby%20monitor')
tree = html.fromstring(page.content)
offers = [tree.xpath('//a[@class = "offer_title"]/text()')]
print(offers)
我期望它做的是给我一个列表,其中包含页面上每个offer_title元素的文本。
我正在枪杀的xpath我从Firebug抓起来,这是:
/ HTML /体/格[1] / DIV / DIV / DIV /部分/ DIV [2] / UL [1] /锂[2] / DIV / H3 / A
以下是该网站的实际字符串:
<a href="/deal/other-kids-babies/angelcare-digital-video-and-sound-monitor-8999-9000-off-9724/" class="offer_title">Angelcare Digital Video And Sound Monitor - $89.99 ($90.00 Off)</a>
我还阅读了其他一些问题,但是他们没有回答第一种方式是如何工作的,而不是第二种方式。由于新帐户的链接限制,无法发布它们。 图书:
任何帮助将不胜感激。我在lxml网站上做了一些关于xpath的阅读,但是我可能会错过我正在构建查询的方式。
谢谢!