【发布时间】:2015-02-19 16:13:02
【问题描述】:
所以我是 python 新手,对网络抓取非常陌生,可以使用一些帮助。即使我真的理解这种语言,我还是设法拼凑(忽略了双关语)一些东西。我正在尝试从某些 Steam 市场商品中获取价格,这就是我目前所拥有的:
import urllib.request
import re
urls = ["http://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20%28Field-Tested%29"]
i=0
pattern = re.compile(b'<span class="market_listing_price market_listing_price_with_fee">\s+(.+?)\s+</span>')
while i< len(urls):
htmlfile = urllib.request.urlopen(urls[i])
htmltext = htmlfile.read()
titles = re.findall (pattern,htmltext)
print (titles)
i+=1
这给出了这样的结果:
[b'471,50 pуб.', b'CDN$ 9.50', b'Rp 103 500.99', b'$8.39 USD', b'$8.40 USD', b'499,99 pуб.', b'499,99 pуб.', b'6,90€', b'6,90€', b'6,90€']
如您所见,这对眼睛来说根本不是很友好,我想要得到的只是最便宜商品的价格(仅美元)(在这种情况下:b'&#36;8.39 USD')。我如何过滤结果,以便它只给我列表中的最低价格,如下所示:8.39 USD。
正如我之前所说,我对 python 和网络抓取非常陌生,因此可能需要更多代码方面的帮助。
【问题讨论】:
标签: python python-3.x web web-scraping screen-scraping