页面基本上是我点击窗口时打开的jpeg。直到现在,我已经能够解析网站并收集一个列表中的所有页面链接。现在,我想打开JPG并下载它们。但我不知道如何处理弹出窗口。
r = requests.get('http://www.assamtribune.com/scripts/at.asp?id=mar0217/Page6')
c = r.content
soup = BeautifulSoup(c,'lxml')
答案 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。