我正在尝试抓取网页,但它需要我先登录。我是网络抓取的新手,所以请忍受我的代码:
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/