2014-01-07 38 views
0

我使用Python的使用抓取的网站下面的代码爬行网站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金(16GB)是“可用”或卖得快”的here ,我应该怎么检查?问题是我不知道怎么去只金(16GB)但不金(32GB)金(64GB)的状态,因为他们都是在一个大table。我该如何得到它的工作原理?我应该使用一些其他库如Scrapy等吗?

回答

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 
... 
+0

让我为你做的!喜欢这样的@Guy。 –