首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用iframe抓取站点

使用iframe抓取站点
EN

Stack Overflow用户
提问于 2019-06-06 02:01:37
回答 1查看 190关注 0票数 2

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

当我试图在浏览器中打开某个iframe url时,它会在那个特定的会话中打开,但在另一个icognito/private会话中却无法打开,当我尝试通过requestswget打开时也是如此。

我试过将请求与会话一起使用,但同样不起作用。下面是我的代码片段

代码语言:javascript
复制
import requests
s = requests.Session()
s.get('https://www.epc.shell.com/')
r = s.get('https://www.epc.shell.com/welcome.asp')
r.text

最后一行只返回javascript文本,并显示URL无效的错误。

我知道Selenium可以解决这个问题,但我正在考虑将其作为最后的选择。

有没有可能用requests (或不用Javascript)抓取这个网址?如果有,我们将不胜感激。如果没有,在Python中有没有其他轻量级的Javascript库可以实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-06 02:48:24

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

代码语言:javascript
复制
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)

(请注意,几乎总是建议在发送请求时使用报头)。

我希望这能帮到你!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56465777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档