Python3.5

爬取《神雕侠侣》http://www.kanunu8.com/wuxia/201102/1610.html

武侠迷,所以喜欢爬取武侠小说

#!/usr/bin/python
# -*- coding: utf-8 -*-from selenium import webdriver
import os
from docx import Document
import reclass House():def __init__(self):self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'}self.baseUrl = 'http://www.kanunu8.com/wuxia/201102/1610.html'self.basePath = os.path.dirname(__file__)def makedir(self, name):path = os.path.join(self.basePath, name)isExist = os.path.exists(path)if not isExist:os.makedirs(path)print('File has been created.')else:print('The file is existed.')#切换到该目录下
        os.chdir(path)def connect(self, url):try:driver = webdriver.PhantomJS()driver.get(url)return driverexcept:print('This page is not existed.')#爬取每个板块中每一章节的链接地址def getBookLinkList(self, url):driver = self.connect(url)bookLinkList = []try:#找到所有href链接bookLinks = driver.find_elements_by_xpath("//a")for link in bookLinks:temp = link.get_attribute('href')print(temp)try:#通过正则表达式筛选出各章节的链接pattern = re.compile(".+\/[0-9]{5}\.html$")if pattern.match(temp):print('ok')bookLinkList.append(link.get_attribute('href'))except:print('little error')except:print('Error')return bookLinkList#爬取每本书的细节数据def getBookDetail(self, url):driver = self.connect(url)try:#找到标题和文章内容title = driver.find_element_by_xpath('//h2').textcontent = driver.find_element_by_xpath('//p').textprint(title)print(content)except:print('Error.')return title, contentdef getData(self):doc = Document()self.makedir('StoryFiles')bookLinkList = self.getBookLinkList(self.baseUrl)for linkUrl in bookLinkList:doc.add_paragraph(self.getBookDetail(linkUrl))doc.save('神雕侠侣.docx')if __name__ == '__main__':house = House()house.getData()

转载于:https://www.cnblogs.com/fredkeke/p/7761100.html

Python爬虫-《神雕侠侣》相关推荐

  1. Python爬虫初步

    Python爬虫初步 这里要介绍一下urllib2这个模块 作用:主要是用于打开url. 核心方法: - urlopen(url[, data][, timeout]) - 打开一个url,该url参 ...

  2. 关于Python爬虫原理和数据抓取1.1

    为什么要做爬虫? 首先请问:都说现在是"大数据时代",那数据从何而来? 企业产生的用户数据:百度指数.阿里指数.TBI腾讯浏览指数.新浪微博指数 数据平台购买数据:数据堂.国云数据 ...

  3. python爬虫之Scrapy框架的post请求和核心组件的工作 流程

    python爬虫之Scrapy框架的post请求和核心组件的工作 流程 一 Scrapy的post请求的实现 在爬虫文件中的爬虫类继承了Spider父类中的start_urls,该方法就可以对star ...

  4. python爬虫抓取信息_python爬虫爬取网上药品信息并且存入数据库

    我最近在学习python爬虫,然后正好碰上数据库课设,我就选了一个连锁药店的,所以就把网上的药品信息爬取了下来. 1,首先分析网页 2,我想要的是评论数比较多的,毕竟好东西大概是买的人多才好.然后你会 ...

  5. python爬虫案例_推荐上百个github上Python爬虫案例

    现在学生都对爬虫感兴趣,这里发现一些好的github开源的代码,分享给各位 1.awesome-spider 该网站提供了近上百个爬虫案例代码,这是ID为facert的一个知乎工程师开源的,star6 ...

  6. Python培训分享:python爬虫可以用来做什么?

    爬虫又被称为网络蜘蛛,它可以抓取我们页面的一些相关数据,近几年Python技术的到来,让我们对爬虫有了一个新的认知,那就是Python爬虫,下面我们就来看看python爬虫可以用来做什么? Pytho ...

  7. 玩转 Python 爬虫,需要先知道这些

    作者 | 叶庭云 来源 | 修炼Python 头图 | 下载于视觉中国 爬虫基本原理 1. URI 和 URL URI 的全称为 Uniform Resource Identifier,即统一资源标志 ...

  8. 买不到口罩怎么办?Python爬虫帮你时刻盯着自动下单!| 原力计划

    作者 | 菜园子哇 编辑 | 唐小引 来源 | CSDN 博客 马上上班了,回来的路上,上班地铁上都是非常急需口罩的. 目前也非常难买到正品.发货快的口罩,许多药店都售完了. 并且,淘宝上一些新店口罩 ...

  9. 一个月入门Python爬虫,轻松爬取大规模数据

    如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样一个月入门Python爬虫,轻松爬的编程语言提供越来越多的优秀工具,让爬虫 ...

  10. Python爬虫获取文章的标题及你的博客的阅读量,评论量。所有数据写入本地记事本。最后输出你的总阅读量!

    Python爬虫获取文章的标题及你的博客的阅读量,评论量.所有数据写入本地记事本.最后输出你的总阅读量!还可以进行筛选输出!比如阅读量大于1000,之类的! 完整代码在最后.依据阅读数量进行降序输出! ...

最新文章

  1. 【牛客网】最长对称子串
  2. CentOS6.5下Gunicorn+Django+nginx部署的过程
  3. python使用imbalanced-learn的SMOTE方法进行上采样处理数据不平衡问题
  4. 成语json_推荐一份中文数据,来试试汉字、词语、成语、歇后语在线检索
  5. SAP PP 中关于计划订单和生产订单的日期计算
  6. javascript中的try finally
  7. SQL Server 2005合并列成字符串 2008-11-07
  8. Unity3D笔记十七 Unity3D生命周期
  9. LeetCode 669. 修剪二叉搜索树
  10. 为什么遇见逆水寒服务器维修,《遇见逆水寒》4月23日更新公告
  11. 147.有序数组的TwoSum(力扣leetcode) 博主可答疑该问题
  12. 字体转换,woff,ttf,otf,eot,svg
  13. SSS1700设计方案|SSS1700中文说明书
  14. java 支付宝转账_支付宝单笔转账到支付宝账户 Java
  15. 调试3G模块语音通话
  16. java爬取今日头条_今日头条抓取街拍图片数据集
  17. 精简 Windows10
  18. oracle 10g xe 12505,ORACLE10g的ORA-12505问题解决方法
  19. 项目管理中的关键路径
  20. Myeclipse10下载,安装,破解,插件,优化介绍

热门文章

  1. vue常见知识点总结
  2. SpringMVC json/xml自动转换
  3. JSP中文件上传的关键步骤
  4. jqgrid for asp.net 遍历所有列rowObject时不用输入编号
  5. OpenSSL学习(十四):基础-指令passwd
  6. cacti安装的一个错误
  7. 互联网系统架构的演进
  8. Android编程之DialogFragment源码详解(一)
  9. Java学习系列(十八)Java面向对象之基于UDP协议的网络通信
  10. 关于C++中cin.ignore()的问题