selenium-爬取小说
selenium-爬取小说

1 import requests
2 from bs4 import BeautifulSoup
3 import sys
4 from selenium import webdriver
5 from selenium.webdriver.support.wait import WebDriverWait
6 from selenium.webdriver.common.by import By
7 from selenium.webdriver.support import expected_conditions as EC
8 import time
9
10 # [sɪˈliniəm] 硒
11
12
13 browser = webdriver.Chrome()
14 wait = WebDriverWait(browser, 10)
15
16
17 def get_total_page():
18 url = 'https://www.xxbiquge.com/0_807/'
19 browser.get(url)
20 html = browser.page_source
21 soup = BeautifulSoup(html, 'lxml')
22 dd = soup.find_all('dd')
23 # browser.close()
24 pages = len(dd)
25 return pages
26
27
28 def index_page(i):
29 """
30 加载出小说的每一章内容
31 :param i: 小说的第 i 章
32 """
33 if i == 1:
34 # 小说第一章的 Url 地址
35 url = "https://www.xxbiquge.com/0_807/4055527.html"
36 browser.get(url)
37 # 等待 Content 节点加载出来
38 wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#content')))
39 # 调用 get_info() 方法对页面进行解析
40 get_info()
41 # 寻找下一章点击的节点
42 next_p = browser.find_elements(By.XPATH, ('//div[@class="bottem2"]/a'))[
43 2] # //*[@id="wrapper"]/div[4]/div/div[6]/a[3]
44 # 找到后停顿 30 秒
45 time.sleep(1)
46 # 点击按钮
47 next_p.click()
48
49
50 def main():
51 """
52 遍历小说全部章节
53 :return:
54 """
55 total_page = get_total_page()
56 print(total_page)
57 for i in range(1, total_page + 1):
58 index_page(i)
59
60
61 def get_info():
62 """
63 提取每一章小说的章章节名及正文
64 #wrapper > div.content_read > div > div.bookname > h1
65 :return:
66 """
67 # 找到章节的名字
68 name = browser.find_element_by_css_selector('#wrapper > div.content_read > div > div.bookname > h1').text
69 print(name)
70 # 找到小说正文
71 content = browser.find_element_by_id('content').text
72 print(content)
73 # 将拿到的小说名和对应的正文内容写入 txt 文件中
74 with open('雪中悍刀行.txt', 'a', encoding="utf-8") as f:
75 # '\n'.join([name, content]) 转化为字符串
76 f.write('\n'.join([name, content]))
77 # 换两行
78 f.write('\n\n')
79
80
81 if __name__ == '__main__':
82 main()
selenium-爬取小说的更多相关文章
- Python实战项目网络爬虫 之 爬取小说吧小说正文
本次实战项目适合,有一定Python语法知识的小白学员.本人也是根据一些网上的资料,自己摸索编写的内容.有不明白的童鞋,欢迎提问. 目的:爬取百度小说吧中的原创小说<猎奇师>部分小说内容 ...
- [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...
- python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇(转载)
转载出处:药少敏 ,感谢原作者清晰的讲解思路! 下述代码是我通过自己互联网搜索和拜读完此篇文章之后写出的具有同样效果的爬虫代码: from bs4 import BeautifulSoup imp ...
- selenium爬取煎蛋网
selenium爬取煎蛋网 直接上代码 from selenium import webdriver from selenium.webdriver.support.ui import WebDriv ...
- 利用selenium爬取京东商品信息存放到mongodb
利用selenium爬取京东商城的商品信息思路: 1.首先进入京东的搜索页面,分析搜索页面信息可以得到路由结构 2.根据页面信息可以看到京东在搜索页面使用了懒加载,所以为了解决这个问题,使用递归.等待 ...
- 利用Selenium爬取淘宝商品信息
一. Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样.由于这个性质,Selenium也是一 ...
- Scrapy 框架 使用 selenium 爬取动态加载内容
使用 selenium 爬取动态加载内容 开启中间件 DOWNLOADER_MIDDLEWARES = { 'wangyiPro.middlewares.WangyiproDownloaderMidd ...
- 使用selenium爬取网站动态数据
处理页面动态加载的爬取 selenium selenium是python的一个第三方库,可以实现让浏览器完成自动化的操作,比如说点击按钮拖动滚轮等 环境搭建: 安装:pip install selen ...
- scrapy框架 + selenium 爬取豆瓣电影top250......
废话不说,直接上代码..... 目录结构 items.py import scrapy class DoubanCrawlerItem(scrapy.Item): # 电影名称 movieName = ...
- 爬虫学习06用selenium爬取空间
用selenium爬取空间 from selenium import webdriver from lxml import etree import time pro = webdriver.Chro ...
随机推荐
- 将数组转化为List集合
字符串转换为数组.将数组转换为List集合 public void testStringToList(){ String s="123-abc-456"; System.out.p ...
- C#数字前补0
[TestMethod] public void Test8() { ; string b = string.Format("{0:000000}", a); , '); }
- 怎样使用js将文本复制到系统粘贴板中
需要使用到三个document方法: 1. document.execCommand(); 执行某个命令 2. document.queryCommandSupported(); 检测浏览器是否支持某 ...
- JDialog
JDialog继承Dialog,Dialog继承Window,所以可以用setLocationRelativeTo(Component c)来实现Dialog的显示,当c为空时,直接显示在屏幕前,为组 ...
- 使用python+selenium获得b站今日播放的动漫
from selenium import webdriver browser=webdriver.Chrome() browser.get('https://www.bilibili.com/anim ...
- 本地存储和vuex使用对比
1. sessionStorage sessionStorage 方法针对一个 session 进行数据存储.当用户关闭浏览器窗口后,数据会被删除. 用法: 储存: 1. 点(.)运算符 ...
- Qt 中配置 c99的问题
Qt 5.3 版本 报错原因是c99标准问题的话,可以尝试下面方法 打开项目中xxx.pro工程文件 加入如下语句: QMAKE_CFLAGS += -std=c99
- VMware虚拟机与Linux Centos7下载及安装教程
1.CentOS下载CentOS是免费版,推荐在官网上直接下载,网址:https://www.centos.org/download/ DVD ISO:普通光盘完整安装版镜像,可离线安装到计算机硬盘上 ...
- Linux系统从新手到运维老鸟学习指南
Linux是在1990年底到1991年由芬兰大学的学生LinusTorvalds利用Minix操作系统作为开发平台编写了内核,目前由世界各地的爱好者共同开发和维护的与UNIX兼容的操作系统,也是自由和 ...
- 十六, k8s集群资源需求和限制, 以及pod驱逐策略。
目录 容器的资源需求和资源限制 QoS Classes分类 Guaranteed Burstable Best-Effort kubernetes之node资源紧缺时pod驱逐机制 Qos Class ...