爬虫-

注意点
1.日历控件
2.headlss有误
3.隐式等待
4.限制速度
5.关闭windows

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import Select
from datetime import date,timedelta
from re import findall


today = str(date.today())
yesterday = str(date.today() - timedelta(days=1))

# chrome_options = Options()
# chrome_options.add_argument('--headless')
# driver = webdriver.Chrome(chrome_options=chrome_options)   #设置有误
driver = webdriver.Chrome()

driver.get("https://www.cuecp.cn/portal/index.jhtml")
# print(driver.page_source)
assert "中国联通合作方门户" in driver.title
driver.find_element_by_xpath('//*[@id="notic_content"]/div[2]/div[1]/span[2]/a').click()

driver.switch_to.window(driver.window_handles[-1])

driver.implicitly_wait(5)
time.sleep(3)
select_province = Select(driver.find_element_by_name("attribute4"))
select_province.select_by_visible_text("浙江")

js_start = "$('input[name=start_time_from]').removeAttr('readonly')"
js_stop = "$('input[name=start_time_to]').removeAttr('readonly')"
driver.execute_script(js_start)
driver.find_element_by_name("start_time_from").send_keys(yesterday)
driver.execute_script(js_stop)
driver.find_element_by_name("start_time_to").send_keys(yesterday)
driver.find_element_by_xpath('//*[@id="content_list"]/div[1]/table/tbody/tr[3]/td[4]/img').click()

ps = driver.find_element_by_id("title_list").get_attribute('innerHTML')
entries = len(findall(r'</li>',ps))
driver.close()
for i in range(1,entries+1):
    driver.switch_to.window(driver.window_handles[0])

    driver.find_element_by_xpath('//*[@id="notic_content"]/div[2]/div[1]/span[2]/a').click()
    time.sleep(3)
    driver.switch_to.window(driver.window_handles[-1])

    select_province = Select(driver.find_element_by_name("attribute4"))
    select_province.select_by_visible_text("浙江")

    js_start = "$('input[name=start_time_from]').removeAttr('readonly')"
    js_stop = "$('input[name=start_time_to]').removeAttr('readonly')"
    driver.execute_script(js_start)
    driver.find_element_by_name("start_time_from").send_keys(yesterday)
    driver.execute_script(js_stop)
    driver.find_element_by_name("start_time_to").send_keys(yesterday)
    driver.find_element_by_xpath('//*[@id="content_list"]/div[1]/table/tbody/tr[3]/td[4]/img').click()

    xpath = '//*[@id="title_list"]/ul/li[' + str(i) + ']/span[1]/div/a'
    driver.find_element_by_xpath(xpath).click()
    driver.switch_to.window(driver.window_handles[-1])
    html = driver.execute_script("return document.documentElement.outerHTML")

    title = findall(r'<div class="content_title">\s*(.*)\s*</div>',html)[0]  #注意空格

    with open(title + '.html',"w",encoding="utf-8") as h:
        h.write(html)
        h.close()
    driver.close()
driver.switch_to.window(driver.window_handles[0])
driver.close()





猜你喜欢

转载自blog.csdn.net/ywf331/article/details/80995331