如何在Beautiful Soup中打开弹出窗口?

时间:2017-03-06 09:55:48

标签: python beautifulsoup python-requests

页面基本上是我点击窗口时打开的jpeg。直到现在,我已经能够解析网站并收集一个列表中的所有页面链接。现在,我想打开JPG并下载它们。但我不知道如何处理弹出窗口。

r = requests.get('http://www.assamtribune.com/scripts/at.asp?id=mar0217/Page6')
c = r.content
soup = BeautifulSoup(c,'lxml')

2 个答案:

答案 0 :(得分:3)

您无法使用BeautifulSoup打开弹出窗口。 BS用于解析页面,而不是用于模拟页面中的点击。

您可以执行的操作是跟踪回复,直至找到所需的图像。

请注意:

1)您请求网址

2)有一个调用另一个请求的iframe - 检查iframe src。您会注意到,如果将该链接放在您的网址中,则会打开您的网页。

3)帧中的页面请求调用html文件。那不是你想要的。你想要的形象。检查来源,你将验证正确的部分 与图像的直接链接类似于框架src链接。

4)使用请求来请求页面并下载文件。

检查此示例代码(我已从上面列表中的第2点开始)。

from bs4 import BeautifulSoup
import requests
import os 

r = requests.get('http://www.assamtribune.com/scripts/PageAT.asp?id=2017/mar0217/Page6')
c = r.content
soup = BeautifulSoup(c,'lxml')

image = soup.find("img")["src"][3:]

 r = requests.get("http://www.assamtribune.com/%s" % image.replace("Page", "BigPage"), stream=True)
if r.status_code == 200:
    with open(os.getcwd() + "\\" + image.split("/")[-1], 'wb') as f:
        f.write(r.content)

我会让你找到框架src并将其连接到我提供的代码中。 玩得开心!

答案 1 :(得分:0)

我相信BeutuifulSoup不会帮助你,但你可以试试selenium模块。试试

driver.switch_to_window("windowName")

但是有关于导航弹出窗口的警告。请参阅this stack post

记录了硒here