【发布时间】:2014-07-09 11:33:26
【问题描述】:
我正在尝试学习如何进行网络抓取,但它并没有以我希望的格式出现。这是我遇到的问题:
import urllib
import re
pagelist = ["page=1","page=2","page=3","page=4","page=5","page=6","page=7","page=8","page=9","page=10"]
ziplocations = ["=30008","=30009"]
i=0
while i<len(pagelist):
url = "http://www.boostmobile.com/stores/?" +pagelist[i]+"&zipcode=30008"
htmlfile = urllib.urlopen(url)
htmltext = htmlfile.read()
regex = '<h2 style="float:left;">(.+?)</h2>'
pattern = re.compile(regex)
storeName = re.findall(pattern,htmltext)
print "Store Name=", storeName[i]
i+=1
此代码产生以下结果: 店铺名称 = Boost Mobile store by wireless depot 店铺名称 = 沃尔玛 ...... 所以对于 10 家不同的商店,我假设发生这种情况是因为
while i<len(pagelist):
只有=到十
所以它只打印出十个商店,而不是所有页面上列出的所有商店。
当我将倒数第二行更改为此
print storeName
它将打印出每个页面上列出的每个商店名称,但不是上面的格式,而是像这样: 'Boost mobile store by wireless depot','boost mobile store by kob wireless','marietta check chashing services',......等等大约另外120个条目。 那么如何以所需的格式获得它:“Store Name = ....”而不是:'name','name',.....
【问题讨论】:
标签: python html regex web-scraping html-parsing