用ifram爬网站点

2024-05-15 18:02:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从this站点抓取数据。它对不同的组件使用多个iframes。你知道吗

当我尝试在浏览器中打开其中一个iframe url时,它会在该特定会话中打开,但在另一个icognito/private会话中不会打开。当我尝试通过requestswget执行此操作时,也会发生同样的情况。你知道吗

我试过在会话中使用请求,但也不起作用。这是我的代码片段

import requests
s = requests.Session()
s.get('https://www.epc.shell.com/')
r = s.get('https://www.epc.shell.com/welcome.asp')
r.text

最后一行只返回错误为URL无效的javascript文本。你知道吗

我知道硒可以解决这个问题,但我认为这是最后的选择。你知道吗

是否可以使用requests或不使用Javascript)对这个URL进行爬网?如果是,任何帮助都将不胜感激。如果没有,Python中是否有其他轻量级Javascript库可以实现这一点?你知道吗


Tags: 数据httpscomurlget站点www组件
1条回答
网友
1楼 · 发布于 2024-05-15 18:02:54

通过向请求中添加custom headers可以很容易地解决您的问题,总之,您的代码应该如下所示:

import requests

s = requests.Session()
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:66.0) Gecko/20100101 Firefox/66.0", "Accept-Language": "en-US,en;q=0.5"}
s.get('https://www.epc.shell.com/', headers = headers)
r = s.get('https://www.epc.shell.com/welcome.asp', headers = headers)

print(r.text)

(请注意,发送请求时几乎总是建议使用头)。你知道吗

我希望这有帮助!你知道吗

相关问题 更多 >