标签: mechanize

无法导入明确安装的模块

安装mechanize之后,我似乎无法导入它.

我尝试从pip,easy_install和via python setup.py install这个repo安装:https://github.com/abielr/mechanize.所有这一切都无济于事,因为每次我输入我的Python互动时,我得到:

Python 2.7.3 (default, Aug  1 2012, 05:14:39) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named mechanize
>>> 
Run Code Online (Sandbox Code Playgroud)

我之前运行的安装报告说它们已经成功完成,所以我希望导入能够正常工作.可能导致此错误的原因是什么?

python python-module mechanize

120
推荐指数
10
解决办法
25万
查看次数

将目录添加到sys.path/PYTHONPATH

我正在尝试从特定目录导入模块.

问题是,如果我使用sys.path.append(mod_directory)附加路径然后打开python解释器,该目录mod_directory将添加到列表sys.path的末尾.如果我PYTHONPATH在打开python解释器之前导出变量,则该目录将添加到列表的开头.在后一种情况下,我可以导入模块,但在前者,我不能.

有人可以解释为什么会这样,并给我一个解决方案mod_directory, python脚本中添加到开头?

python mechanize python-import pythonpath

115
推荐指数
3
解决办法
22万
查看次数

如何避免HTTP错误429(Too Many Requests)python

我正在尝试使用Python登录网站并从几个网页收集信息,我收到以下错误:

Traceback (most recent call last):
  File "extract_test.py", line 43, in <module>
    response=br.open(v)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 255, in _mech_open
    raise response
mechanize._response.httperror_seek_wrapper: HTTP Error 429: Unknown Response Code
Run Code Online (Sandbox Code Playgroud)

我用time.sleep()它并且它有效,但它似乎不聪明和不可靠,有没有其他方法来躲避这个错误?

这是我的代码:

import mechanize
import cookielib
import re
first=("example.com/page1")
second=("example.com/page2")
third=("example.com/page3")
fourth=("example.com/page4")
## I have seven URL's I want to open

urls_list=[first,second,third,fourth]

br = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

# Browser options 
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)

# …
Run Code Online (Sandbox Code Playgroud)

python http mechanize http-status-code-429

75
推荐指数
6
解决办法
19万
查看次数

哪个在Python中最好:urllib2,PycURL还是机械化?

好的,我需要使用Python下载一些网页,并快速调查我的选项.

包含在Python中:

urllib - 在我看来,我应该使用urllib2代替.urllib没有cookie支持,只有HTTP/FTP /本地文件(没有SSL)

urllib2 - 完整的HTTP/FTP客户端,支持最需要的东西,如cookie,不支持所有HTTP动词(只有GET和POST,没有TRACE等)

功能齐全:

机械化 - 可以使用/保存Firefox/IE cookie,采取跟随第二个链接的行动,积极维护(2011年3月发布0.2.5)

PycURL - 支持curl所做的一切(FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP),坏消息:自2008年9月9日起未更新(7.19.0)

新的可能性:

urllib3 - 支持连接重用/池和文件发布

不推荐使用(也就是使用urllib/urllib2):

httplib - 仅限HTTP/HTTPS(无FTP)

httplib2 - 仅限HTTP/HTTPS(无FTP)

让我印象深刻的第一件事是urllib/urllib2/PycURL/mechanize都是非常成熟的解决方案,效果很好.机械化和PycURL附带了许多Linux发行版(例如Fedora 13)和BSD,所以安装通常不是问题(所以这很好).

urllib2看起来不错,但我想知道为什么PycURL和机械化看起来都非常受欢迎,是否有一些我缺少的东西(即如果我使用urllib2,我会在某个角落将自己画到一个角落?).我真的很喜欢这些事情的优点/缺点的反馈,所以我可以为自己做出最好的选择.

编辑:在urllib2中添加了关于动词支持的注释

python mechanize urllib2 pycurl

72
推荐指数
3
解决办法
3万
查看次数

屏幕抓取:绕过"HTTP错误403:robots.txt禁止请求"

有办法解决以下问题吗?

httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
Run Code Online (Sandbox Code Playgroud)

是唯一的方法来联系网站所有者(barnesandnoble.com)..我正在建立一个网站,将带来更多的销售,不知道为什么他们会拒绝在一定深度访问.

我在Python2.6上使用了mechanize和BeautifulSoup.

希望能够解决问题

python screen-scraping mechanize beautifulsoup http-status-code-403

45
推荐指数
4
解决办法
4万
查看次数

如何使用Nokogiri解析HTML表格?

我安装了Ruby和Mechanize.在我看来,Nokogiri可以做我想做的事,但我不知道该怎么做.

那怎么样table?它只是vBulletin论坛网站HTML的一部分.我试图保留HTML结构,但删除了一些文本和标记属性.我想获得每个帖子的一些细节:标题,作者,日期,时间,回复和视图.

请注意HTML文档中的表格很少?我正在追寻一张特别的桌子tbody,<tbody id="threadbits_forum_251">.名称将始终相同(我希望).我可以在代码中使用tbodyname吗?

<table >
  <tbody>
    <tr>  <!-- table header --> </tr>
  </tbody>
  <!-- show threads -->
  <tbody id="threadbits_forum_251">
    <tr>
      <td></td>
      <td></td>
      <td>
        <div>
          <a href="showthread.php?t=230708" >Vb4 Gold Released</a>
        </div>
        <div>
          <span><a>Paul M</a></span>
        </div>
      </td>
      <td>
          06 Jan 2010 <span class="time">23:35</span><br />
          by <a href="member.php?find=lastposter&amp;t=230708">shane943</a> 
        </div>
      </td>
      <td><a href="#">24</a></td>
      <td>1,320</td>
    </tr>

  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

html ruby html-table mechanize nokogiri

34
推荐指数
1
解决办法
3万
查看次数

Python Mechanize选择一个没有名称的表单

我试图机械化从页面中选择一个表单,但有问题的表单在html中没有"name"属性.我该怎么办?当我尝试使用

br.select_form(name = "")
Run Code Online (Sandbox Code Playgroud)

我得到的错误是没有使用该名称声明表单,并且该函数需要输入名称.页面上只有一个表单,是否有其他方式可以选择该表单?

html python forms mechanize

30
推荐指数
1
解决办法
2万
查看次数

Python机械化 - 两个"提交"类型的按钮

我有一个用python编写的机械化脚本,它填写了一个Web表单,并且应该点击"创建"按钮.但是有一个问题,表单有两个按钮.一个用于"添加附件",另一个用于"创建".两者都是"提交"类型,附加按钮是列出的第一个.因此,当我选择论坛并执行br.submit()时,它会点击"附加"按钮而不是"创建".广泛的谷歌搜索对于选择表单中的特定按钮没有任何帮助.有没有人知道跳过第一个"提交"按钮并点击第二个的任何方法?

python mechanize

27
推荐指数
3
解决办法
3万
查看次数

如何使用Mechanize处理JavaScript?

我正在连接到一个网站,登录.

该网站将我重定向到新页面,Mechanize处理所有cookie和重定向作业,但是,我无法获得最后一页.我使用Firebug并再次做同样的工作,看到还有两页我必须通过Mechanize传递.

我快速浏览了一下页面,看到有一些JavaScript和HTML代码,但无法理解,因为它看起来不像普通的页面代码.那些页面是什么?他们如何重定向到其他页面?我该怎么做才能通过这些?

html javascript ruby mechanize

27
推荐指数
3
解决办法
4万
查看次数

如何处理IncompleteRead:在python中

我想从网站上获取一些数据.然而,它回报了我incomplete read.我想要获取的数据是一组庞大的嵌套链接.我在网上进行了一些研究,发现这可能是由于服务器错误(在达到预期大小之前完成了一个分块传输编码).我还在此链接上找到了上面的解决方法

但是,我不确定如何在我的情况下使用它.以下是我正在处理的代码

br = mechanize.Browser()
br.addheaders = [('User-agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1;Trident/5.0)')]
urls = "http://shop.o2.co.uk/mobile_phones/Pay_Monthly/smartphone/all_brands"
page = urllib2.urlopen(urls).read()
soup = BeautifulSoup(page)
links = soup.findAll('img',url=True)

for tag in links:
    name = tag['alt']
    tag['url'] = urlparse.urljoin(urls, tag['url'])
    r = br.open(tag['url'])
    page_child = br.response().read()
    soup_child = BeautifulSoup(page_child)
    contracts = [tag_c['value']for tag_c in soup_child.findAll('input', {"name": "tariff-duration"})]
    data_usage = [tag_c['value']for tag_c in soup_child.findAll('input', {"name": "allowance"})]
    print contracts
    print data_usage
Run Code Online (Sandbox Code Playgroud)

请帮帮我.谢谢

python mechanize beautifulsoup web-scraping python-2.7

27
推荐指数
3
解决办法
4万
查看次数