我使用Python使用以下代码抓取网站
def ReadContent(url):
html = GetWebPageContent(url)
parser = ReadingContentParser(strict=False)
parser.feed(html)
if not parser.text_appear:
print("Ipad Mini is on sale!")
Alert()
else:
print("Ipad Mini is not available!")
ReadContent(URL_TO_CHECK)
现在我要检查一下IPhone Gold(16GB)是“可用”还是“快速销售”here,我应该如何检查?问题是我不知道如何只获取状态黄金(16GB)但不是黄金(32GB)或黄金(64GB),因为它们都在一张大桌子上。我该怎么办?它有用吗?我应该使用像Scrapy这样的其他库吗?
答案 0 :(得分:1)
您可以使用lxml with xpath:
from lxml import html
url = "http://info.singtel.com/personal/phones-plans/mobile/ios/iphone5s?type=2&device=1312&colour=gold#stock-availability"
doc = html.parse(url)
for tr in doc.xpath('//div[@class="available-stock"]//tr'):
if tr.xpath('td'):
print tr.xpath('td[1]')[0].text.strip(),
tr.xpath('td[2]/strong')[0].text == 'Sold Out'
输出:
City Square Mall True
ION Orchard True
Plaza Singapura True
Raffles City True
United Square True
...