如何使用python和selenium和美丽的汤刮一个弹出页面

时间:2018-01-31 11:26:05

标签: javascript python selenium beautifulsoup

我试图从弹出页面中删除信息。它以表格形式显示非政府组织的名称,并且点击每个名称会让位于弹出页面。在下面的代码中,我提取每个NGO的onclick属性并将其存储在变量中。我想使用此变量发出一个post请求来获取弹出页面。 (我也试过用硒来访问它。它没有用。

如何让我的代码打开这些弹出链接以从中抓取数据?

页面背后的HTML

<a href="javascript:void(0)"  onclick="show_ngo_info(161456);">Name</a>

代码部分在

之下
 html = requests.get("http://ngodarpan.gov.in/index.php/home/statewise_ngo/31/35/1")
 soup = BeautifulSoup(html.text, 'lxml')
 first_div = soup.find ('div',  class_ = "ibox-content")
 get_tr = first_div.find_all('a', onclick=True)
 for ngoinfo in get_tr:
 try:
    if re.match('show_ngo_info',ngoinfo['onclick']):    
        k = ngoinfo['onclick']
        p = re.sub("\D", "", k)
except:pass              

1 个答案:

答案 0 :(得分:0)

当您在网页上加载动态信息时,您应该检查页面调用的内容以获取此动态信息。您可以使用Web浏览器中的“检查工具”来查找。

检查页面我看到当您单击其中一个链接以显示弹出窗口时,页面会执行两个请求,第一个获得 CSRF令牌,第二个获取将显示的信息在弹出窗口中。

我认为您应该尝试使用Python模拟这些调用。我无法测试这个,但我认为这是方法。

我在浏览器检查工具中检查网络时发现了这一点。

您需要为要提取的每个链接执行这些调用。

我希望能帮助你。