selenium+python爬取数据跳转网页

Posted batt1ebear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium+python爬取数据跳转网页相关的知识,希望对你有一定的参考价值。

项目要做一个四个层级栏的数据抓取,而且点击查询后数据会在新跳出的网页。

源码如下 注释解释

from selenium import webdriver
import selenium
#from time import sleep as sp

url=http://202.127.42.157/moazzys/nongqing.aspx
site=webdriver.Chrome()
site.get(url)

#data={}
mainhandle=site.current_window_handle#主页面句柄  每个浏览器标签页都有一个句柄
years=site.find_elements_by_xpath(//select[@id="ContentPlaceHolder1_year"]/option)
co_year=len(years)
for d in range(co_year):
        years[d].click()
        provs=site.find_elements_by_xpath(//select[@id="ContentPlaceHolder1_prov"]/option)
        co_prov=len(provs)
        for c in range(co_prov):
            provs[c].click()
            items=site.find_elements_by_xpath(//select[@id="ContentPlaceHolder1_item"]/option)
            co_item=len(items)
            for b in range(co_item):
                items[b].click()
                types=site.find_elements_by_xpath(//select[@id="ContentPlaceHolder1_type"]/option)
                co_type=len(types)
                for a in range(co_type):
                    types[a].click()
                    #点击进入新窗口
                    site.find_element_by_id(ContentPlaceHolder1_btnsearch).click()
                    handles = site.window_handles
                    for handle in handles:# 轮流得出标签页的句柄 切换窗口 因为只有两个标签页实际是假for循环 
                        if handle!=mainhandle:
                            site.switch_to_window(handle)
                            #获得数据
                            try:
                                raw=site.find_element_by_xpath(//tr/td[@align="right"])
                                print (raw.text)
                                #data.append(raw.text)
                            except Exception as e:
                                print("无该数据")
                            #获得数据
                            site.close() #关闭当前标签页
                    site.switch_to_window(mainhandle)#回到原来标签页
                    types=site.find_elements_by_xpath(//select[@id="ContentPlaceHolder1_type"]/option)
                    types[a].click()
                items=site.find_elements_by_xpath(//select[@id="ContentPlaceHolder1_item"]/option)
                items[b].click()
            provs=types=site.find_elements_by_xpath(//select[@id="ContentPlaceHolder1_prov"]/option)
            provs[c].click()
        year=types=site.find_elements_by_xpath(//select[@id="ContentPlaceHolder1_year"]/option)
        years[d].click()
site.quit()

 

以上是关于selenium+python爬取数据跳转网页的主要内容,如果未能解决你的问题,请参考以下文章

求助:Python爬虫 点击按钮后的数据如何爬取

如何用python抓取js生成的数据

Python爬虫-爬取斗鱼网页selenium+bs

python+selenium+PhantomJS爬取网页动态加载内容

Python-selenium翻页爬取csdn博客保存数据入mysql

如何用python+selenium+phantomjs获得一个网页的动态生成的html代码