Python Mechanize 无法打开这些网站

7 投票
1 回答
1751 浏览
提问于 2025-04-17 08:28

我正在使用Python的Mechanize模块。遇到了3个不同的网站,Mechanize直接打不开:

  1. en.wikipedia.org/wiki/Dog(我是新用户,不能发超过两个链接T-T)
  2. https://www.google.com/search?num=100&hl=en&site=&q=dog&oq=dog&aq=f&aqi=g10&aql=1&gs_sm=e&gs_upl=618l914l0l1027l3l2l0l0l0l0l173l173l0.1l1l0
  3. http://www.cpsc.gov/cpscpub/prerel/prhtml03/03059.html

    import mechanize
    br = mechanize.Browser()
    br.set_handle_robots(False)
    

添加以下代码后,Mechanize可以打开并解析维基百科的文章和谷歌搜索结果:

    br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

但是,我的解决方法对CPSC.gov网站无效——当我尝试用Mechanize浏览器打开它时,我的Python程序就卡住了,甚至连键盘中断都无法响应。

这是怎么回事呢?

1 个回答

15

在cpsc.gov这个网站的情况下,似乎有一个刷新的设置,但mechanize的HTTPRefreshProcessor没有正确处理这个设置。不过,你可以通过以下方法来解决这个问题:

import mechanize

url = 'http://www.cpsc.gov/cpscpub/prerel/prhtml03/03059.html'
br = mechanize.Browser()
br.set_handle_refresh(False)
br.open(url)

撰写回答