前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

tmp

作者头像
云雀叫了一整天
发布2019-09-29 17:40:57
1.3K0
发布2019-09-29 17:40:57
举报
文章被收录于专栏:Hi, PythonHi, Python

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_40313634/article/details/97314960

代码语言:javascript
复制
#!/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()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档