gpt4 book ai didi

python - 在python中下载html?

转载 作者:太空狗 更新时间:2023-10-29 16:42:54 26 4
gpt4 key购买 nike

当您单击浏览器中的链接时,我正在尝试下载通过 javascript 操作请求的页面的 html。我可以下载第一页,因为它有一个通用 URL:

http://www.locationary.com/stats/hotzone.jsp?hz=1

但是页面底部有数字链接(1 到 10)。因此,如果您单击其中一个,它将转到例如第 2 页:

http://www.locationary.com/stats/hotzone.jsp?ACTION_TOKEN=hotzone_jsp$JspView$NumericAction&inPageNumber=2

当我将该 URL 放入我的程序并尝试下载 html 时,它为我提供了网站上不同页面的 html,我认为它是主页。

当没有具体的 URL 时,如何获取这个使用 javascript 的 URL 的 html?

谢谢。

代码:

import urllib
import urllib2
import cookielib
import re

URL = ''

def load(url):

data = urllib.urlencode({"inUserName":"email", "inUserPass":"password"})
jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
opener.addheaders.append(('User-agent', 'Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1'))
opener.addheaders.append(('Referer', 'http://www.locationary.com/'))
opener.addheaders.append(('Cookie','site_version=REGULAR'))
request = urllib2.Request("https://www.locationary.com/index.jsp?ACTION_TOKEN=tile_loginBar_jsp$JspView$LoginAction", data)
response = opener.open(request)
page = opener.open("https://www.locationary.com/index.jsp?ACTION_TOKEN=tile_loginBar_jsp$JspView$LoginAction").read()

h = response.info().headers
jsid = re.findall(r'Set-Cookie: (.*);', str(h[5]))
data = urllib.urlencode({"inUserName":"email", "inUserPass":"password"})
jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
opener.addheaders.append(('User-agent', 'Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1'))
opener.addheaders.append(('Referer', 'http://www.locationary.com/'))
opener.addheaders.append(('Cookie','site_version=REGULAR; ' + str(jsid[0])))
request = urllib2.Request("https://www.locationary.com/index.jsp?ACTION_TOKEN=tile_loginBar_jsp$JspView$LoginAction", data)
response = opener.open(request)
page = opener.open(url).read()
print page

load(URL)

最佳答案

selenium webdriver来自 selenium 工具套件的工具使用标准浏览器检索 HTML(它的主要目标是 Web 应用程序的测试自动化),因此它非常适合废弃 javascript 丰富的应用程序。它有很好的 Python 绑定(bind)。

我倾向于在所有 ajax 内容被触发后使用 selenium 获取页面源代码,并用类似 BeautifulSoup 的东西解析它。 (BeautifulSoup 可以很好地处理格式错误的 HTML)。

关于python - 在python中下载html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com