[Asm] 纯文本查看 复制代码 import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# from selenium.webdriver.common.action_chains import ActionChains
# chrome_options = webdriver.ChromeOptions();
# # 添加浏览器参数
# # 添加UA
# chrome_options.add_argument(
# 'User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"'
# )
# # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
# chrome_options.add_argument('--headless')
# # 以最高权限运行
# chrome_options.add_argument('--no-sandbox')
# # 设置开发者模式启动,该模式下webdriver属性为正常值
# chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
# driver = webdriver.Chrome(chrome_options= chrome_options)
driver = webdriver.Chrome()
driver.get("https://www.qidian.com/")
time.sleep(1)
name = input("请输入小说的名字:")
el =driver.find_element_by_xpath('//*[@id="s-box"]').send_keys(name)
time.sleep(1)
# driver.find_element_by_xpath('//*[@id="s-box"]').send_keys(Keys.ENTER)
rep1 = driver.find_element_by_xpath('//div[@class="search-wrap fl"]//label') #定位搜索
driver.execute_script("arguments[0].click();",rep1) #点击
time.sleep(2)
# print(driver.current_url) #这里遇到猫老壳 能够翻页但是不能获取url 估计是起点的url 经过转码
#获取当前所有的窗口 这个有个大坑 经过selenium 模拟点击跳转的 源码还在第一页 需要切换窗口
current_windouw = driver.window_handles
#切换窗口
driver.switch_to.window(current_windouw[1])
book_onfo = driver.find_elements_by_xpath('//*[@id="result-list"]/div/ul/li[1]/div[2]/p[2]')
book_onfo1 = "".join([(x.text).strip() for x in book_onfo]) #好像selenium 不能获取标签下是所有文本 我是小白 反正我是一个一个取出来.text
print(name,book_onfo1)
"""
只爬取了小说的名字和简介 , selenium 还是要和别的库配合较好 selenium 处理一些动态难处理的就好
"""
driver.close()
driver.quit()
|