【问题标题】:Beautifulsoup web scraper issueBeautifulsoup 网页刮板问题
【发布时间】: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


【解决方案1】:

我帮助了一个遇到类似问题的人,结果是字符串的编码。这个链接(来自他们的文档)可能会帮助你 - Beautiful Soup Gives You Unicode, Dammit

【讨论】:

  • 感谢您的帮助,这不是个案。请参阅上面我对 Shawn Chin 的关于解决问题的评论
  • 没问题 - 只是想我会包括它以防万一它有帮助 - 快乐刮
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 2021-08-05
相关资源
最近更新 更多