版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40313634/article/details/97314960
#!/usr/bin/env python
'''
电子书查找
'''
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from time import sleep
class Search(object):
def __init__(self, book):
self.__book = book
self.__browser = webdriver.Chrome()
self.__url = {
'du_shu_zu': 'https://www.dushuzu.com/'
}
self.__qidian = 'https://www.qidian.com/'
def __newest_title(self):
title = ''
self.__browser.get(self.__qidian)
input = self.__browser.find_element_by_class_name('search-box')
input.clear()
input.send_keys(self.__book)
input.send_keys(Keys.ENTER)
self.__browser.switch_to_window(self.__browser.window_handles[1])
located = self.__browser.find_element_by_css_selector('.res-book-item .update a')
title = located.text.split('章')[1].strip()
self.__browser.close()
self.__browser.switch_to_window(self.__browser.window_handles[0])
return title
def __search(self, title):
for __, url in self.__url.items():
self.__browser.get(url)
wait = WebDriverWait(self.__browser, 60)
wait.until(EC.presence_of_element_located((By.ID, 'kw')))
input = self.__browser.find_element_by_id('kw')
input.clear()
input.send_keys(self.__book)
input.send_keys(Keys.ENTER)
with open('log.html', 'w', encoding='utf-8') as f:
f.write(self.__browser.page_source)
title = title.split(',')[-1]
title = str(title.encode('utf-8'))
located = self.__browser.find_element_by_link_text(title)
located.click()
located = self.__browser.find_element_by_css_selector('[align="left"]')
return located.text
def run(self):
title = self.__newest_title()
txt = self.__search(title)
print(txt)
# self.__browser.close()
if __name__ == '__main__':
book = '元尊'
search = Search(book)
search.run()