当页面需要启用 JavaScript 时,Python 获取 URL 内容

问题描述 投票:0回答:3

我希望使用 Python 获取我网站上托管的文本文件的内容。服务器需要在您的浏览器上启用 JavaScript。因此,当我跑步时:

    import urllib2  
    target_url = "http://09hannd.me/ai/request.txt"
    data = urllib2.urlopen(target_url) 

我收到一个 html 页面,要求启用 JavaScript。 我想知道是否有一种方法可以假装启用 JS 或者其他什么。

谢谢

javascript python html http text
3个回答
3
投票

Selenium
是这里的方法,但还有另一个“hacky”选项。

基于此答案:https://stackoverflow.com/a/26393257/2517622

import requests

url = 'http://09hannd.me/ai/request.txt'
response = requests.get(url, cookies={'__test': '2501c0bc9fd535a3dc831e57dc8b1eb0'})
print(response.content) # Output: find me a cafe nearby

0
投票

我可能会推荐这样的工具。 https://github.com/niklasb/dryscrape

此外,您可以在此处查看更多信息:Using python with selenium to scrapedynamic webpages


0
投票

urllib 有一个替代方案 支持 JavaScript 的 HTML 会话(渲染) .

from requests_html import HTMLSession

custom_session = HTMLSession()
r = custom_session.get('http://python-requests.org')

r.html.render() #Run JavaScript

print(r.html.search('Python 2 will retire in only {months} months!')['months'])

'<time>25</time>'
© www.soinside.com 2019 - 2024. All rights reserved.