javascript - 在没有启用javascript的网页上使用 Mechanize 和美汤

标签 javascript python html beautifulsoup mechanize

我正在尝试抓取网页,但它需要我先登录。我是网络抓取的新手,所以请忍受我的代码:

import urllib
import urllib2
from bs4 import BeautifulSoup
import mechanize

browser = mechanize.Browser()
browser.addheaders = [('User-agent', 'Mozilla/5.0')]
browser.set_handle_robots(False)
browser.open('https://mywebsite.com')
# browser.select_form(name = 'form2')
# browser.form['Account Name'] = 'username'
# browser.form['Password'] = 'mypassword'
# browser.submit()

soup = BeautifulSoup(browser.response().read())
print soup

但是我收到此错误:
<html><head><script language="javascript">
<!--.
    .
    .
</script>
<noscript>
<title>No JavaScript Error</title>
<body>
<h3 align="center">Your Browser does not support JavaScript, or it is disabled.<br/>To run this application, you must enable JavaScript!!</h3>
</body></noscript></head></html>

最佳答案

尝试使用以下 header ,服务器可能无法识别您的 header ,因此可能会导致它认为您没有启用 javascript:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36

注意:有些网站有防抓取保护,您必须解决 javascript 难题才能获得实际内容。您可以使用 Js2Py对于那个或任何其他 javascript 运行时。抓取此类网站要困难得多,但幸运的是很少有网站使用此系统。

关于javascript - 在没有启用javascript的网页上使用 Mechanize 和美汤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32060616/

相关文章:

python - 在 rpy 中传递 R 函数参数

python - Django REST 框架——Many2Many/Through

javascript - 如何修复此菜单以使其响应?

javascript - Bootstrap 无法处理非常大的屏幕分辨率

javascript - 使用 JavaScript 根据网站 URL 更改 div 背景图片

javascript - meteor JS : Timing of Accessing MongoDB affects the result of the Access

ruby-on-rails-3 - Vendors/assets/javascript 中的 Rails 3.2 Asset Pipeline + html5shiv.JS

javascript - 在不正确的路线上收到错误消息

python 使用 matplotlib 绘制 json 文件数据

html - 在其他 div 上方的行表中显示下拉列表