【发布时间】:2011-09-01 08:34:16
【问题描述】:
我正在使用 BeautifulSoup 和 mechanise 从网页中查找一些内容。问题是有时找不到我正在寻找的字符串。我不知道可能是什么问题
它在许多网页上运行了好几个月,但突然停止工作。然后我必须重新启动我的程序并希望得到正确的结果。
问题出在data.find(text=re.compile('string to find'))。网页总是在下载,但有时找不到字符串。我认为问题可能是错误的HTML 加载页面的格式?有什么想法吗?
这是我正在使用的代码的一小部分,仅供您查看
from BeautifulSoup import BeautifulSoup as soup
from mechanize import Browser
import sys, re
def get_page(url):
mech = Browser()
page = mech.open(url)
return page.read()
def test():
data = soup(get_page('some url'))
div_pages = data.find(text=re.compile('string to find'))
try: pager = div_pages.strip().split(' ')
except:
print div_pages
sys.exit()
print 'ok'
if __name__ == '__main__':
test()
【问题讨论】:
-
在找不到所需数据时尝试记录页面。可能是您正在加载的页面有问题,而不是脚本。
-
@Shawn Chin:okj 所以我想通了。这个特定的网站目前正在测试新设计。我不知道确切的公式,但在我看来,二十页浏览量中的一个是不同的设计,所以我的刮刀无法工作:) 所以第一条规则:确定你在刮什么!
标签: python beautifulsoup mechanize web-scraping