【发布时间】:2014-09-22 08:15:10
【问题描述】:
我需要从以下链接中抓取数据 http://164.100.47.132 /LssNew/members/homepage.aspx?mpsno=4589(详细信息选区;政党名称;当前地址和永久地址)
我发现这些标签本质上过于通用,无法形成抓取这些数据的基础。有人可以指导我获取这些数据吗?
我正在使用的示例:
import urllib
import re
htmlfile = urllib.urlopen("http:// 164. 100. 47. 132/LssNew/members/homepage.aspx?mpsno=4433")
htmltext = htmlfile.read()
##regex = '<span id="ctl00_ContPlaceHolderMain_Homepagetest1_Label4">(.+?)</span>'
regex = '<span class="style13">(.+?)</span>'
pattern = re.compile(regex)
print htmltext
print pattern
lsmember = re.findall(pattern,htmltext)
print lsmember[0:100]
【问题讨论】:
-
您能否展示一下您迄今为止尝试过的以及您的解决方案中没有解决的问题?
-
import urllib import re htmlfile = urllib.urlopen("164.100.47.132/LssNew/members/homepage.aspx?mpsno=4433") htmltext = htmlfile.read() ##regex = '(.+?) span>' regex = '(.+?)' pattern = re.compile(regex) print htmltext print pattern lsmember = re.findall(pattern,htmltext) print lsmember[0 :100]
-
请编辑问题,因为您可能已经注意到 cmets 并没有很好地格式化代码。
-
也许使用http://scrapy.org 或BeautifulSoup 之类的东西可以更好地帮助您提取正确的数据。当涉及到 HTML 和 Scrapy 和 BeautifulSoup 支持 DOM 解析器时,Regex 有点错误,这使它更容易一些。 (不过它需要更多样板文件)
标签: python python-2.7 web-scraping