import requests

from lxml import etree

from urllib import parse

import os, time

def get_page_html(url):

'''向url发送请求'''

resoponse = session.get(url, headers=headers, timeout=timeout)

try:

if resoponse.status_code == 200:

return resoponse

except exception:

return none

def get_next_url(resoponse):

'''获取下一页的url链接'''

if resoponse:

try:

selector = etree.html(resoponse.text)

url = selector.xpath("//a[@id='j_chapternext']/@href")[0]

next_url = parse.urljoin(resoponse.url, url)

return next_url

except indexerror:

return none

def xs_content(resoponse):

'''获取小说的章节名,内容'''

if resoponse:

selector = etree.html(resoponse.text)

title = selector.xpath("//h3[@class='j_chaptername']/text()")[0]

content_xpath = selector.xpath(

"//div[contains(@class,'read-content') and contains(@class,'j_readcontent')]//p/text()")

return title, content_xpath

def write_to_txt(info_tuple: tuple):

if not info_tuple: return

path = os.path.join(base_path, info_tuple[0])

if not os.path.exists(path):

with open(path + ".txt", "wt", encoding="utf-8") as f:

for line in info_tuple[1]:

f.write(line + "\n")

f.flush()

def run(url):

'''启动'''

html = get_page_html(url)

next_url = get_next_url(html)

info_tupe = xs_content(html)

if next_url and info_tupe:

print("正在写入")

write_to_txt(info_tupe)

time.sleep(sleep_time) # 延迟发送请求的时间,减少对服务器的压力。

print("正在爬取%s" % info_tupe[0])

print("正在爬取%s" % next_url)

run(next_url)

if __name__ == '__main__':

session = requests.session()

sleep_time = 5

timeout = 5

base_path = r"d:\图片\lszj" # 存放文件的目录

url = "https://read.qidian.com/chapter/8iw8dkb_ztxrzk4x-cujuw2/fwjwroiobhn4p8iew--ppw2" # 这是斗破苍穹第一章的url 需要爬取的小说的第一章的链接(url)

headers = {

"referer": "read.qidian.com",

"user-agent": "mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/72.0.3626.121 safari/537.36"

}

print('开始运行爬虫')

run(url)

python爬虫爬取起点小说_python3爬虫-使用requests爬取起点小说相关推荐

  1. python爬虫爬取新闻标题_Python3爬虫实战(一):新闻标题及其URL

    本文以'链节点'网站为例,实现新闻标题及其URL批量获取,并以字典的形式存入本地. 代码使用python的requests模块,并以json格式转存本地. 分成3步:1,发请求:2,解析数据:3,保存 ...

  2. python怎么爬取豆瓣首页_Python3 爬虫(二) -- 爬取豆瓣首页图片

    ''' 批量下载豆瓣首页的图片 采用伪装浏览器的方式爬取豆瓣网站首页的图片,保存到指定路径文件夹下 ''' #导入所需的库 import urllib.request,socket,re,sys,os ...

  3. python3爬取视频原理_Python3爬虫实战:以爬取豆瓣电影为例

    爬虫又称为网页蜘蛛,是一种程序或脚本. 但重点在于,它能够按照一定的规则,自动获取网页信息. 爬虫的基本原理--通用框架 1.挑选种子URL: 2.讲这些URL放入带抓取的URL列队: 3.取出带抓取 ...

  4. python网易云爬虫网络技术的意义_Python3爬虫实战之网易云音乐

    Xpath最初被设计用来搜寻XML文档,但它同样适用于HTML文档的搜索.通过简洁明了的路径选择表达式,它提供了强大的选择功能:同时得益于其内置的丰富的函数,它可以匹配和处理字符串.数值.时间等数据格 ...

  5. Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测

    Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测 目录 利用bs4和requests爬取了国内顶级某房源平 ...

  6. Python爬虫新手入门教学(十四):爬取有声小说网站数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  7. python爬取凤凰新闻网_python3.6爬取凤凰网新闻-爬虫框架式思维

    一.序言 先前几篇爬虫的代码,是简单的脚本代码.在爬取小网页觉得挺简单.高效,但涉及复杂网页的时候,就要考虑成熟的爬虫框架与分布式.本篇博客作为无框架式爬虫和有框架式爬虫的一个过渡,介绍具有框架式思维 ...

  8. python爬虫怎么爬小说_python爬虫:定向爬取小说

    01 注:本文利用requests库和BeautifulSoup库来爬取笔趣看中的小说'诛仙' 02 首先,你要安装这两个python的第三方库:安装方法如下: requests --> pip ...

  9. python爬取今日头条_Python3网络爬虫实战-36、分析Ajax爬取今日头条街拍美图

    本节我们以今日头条为例来尝试通过分析 Ajax 请求来抓取网页数据的方法,我们这次要抓取的目标是今日头条的街拍美图,抓取完成之后将每组图片分文件夹下载到本地保存下来. 1. 准备工作 在本节开始之前请 ...

最新文章

  1. Scrapy+Scrapy-redis+Scrapyd+Gerapy 分布式爬虫框架整合
  2. 【Android 逆向】Android 系统文件分析 ( /system/ 系统命令和系统应用数据目录 | /system/app/ 系统应用目录 | sys Linux 系统内核文件目录 )
  3. Qt下使用OpenCV3打开摄像头并把图像显示到QLabel上
  4. r语言r-shiny_使用Shiny和R构建您的第一个Web应用程序仪表板
  5. python矩阵中的冒号:
  6. Ubuntu crontab 定时 python 详细
  7. 刚刚收到的邮件,Google对Admob的收购已经顺利结束
  8. 个人Androidstudio快捷键及常用设置配置
  9. LSTM网络(Long Short-Term Memory )
  10. Python 机器学习经典实例
  11. nbu备份nas文件服务器,NBU备份恢复实践
  12. 河源戴尔服务器型号,【河源DELL(戴尔)磁盘阵列】河源DELL(戴尔)磁盘阵列报价及图片大全-列表版-ZOL中关村在线...
  13. NSString 和 UInt8 相互转换
  14. Unity3D模型导入缩放问题
  15. 聚观早报 | 嘀嗒出行重启赴港IPO;饿了么到店业务将与高德合并
  16. 用计算机弹琴琴谱,在电脑上弹钢琴的软件
  17. ps制作食品网页总结
  18. Scrapy 简易爬取Boss直聘 可设定city job 爬取工作到excel或mysql中
  19. 小米平板android最新版本,跑分 当鲁大师遇见安兔兔
  20. 【设计模式系列24】GoF23种设计模式总结及软件设计7大原则

热门文章

  1. 友盟推送的接入和遇到问题
  2. w3cschool菜鸟教程离线版chm手册正式发布
  3. 服务器操作系统linux,关于服务器的操作系统
  4. java输入数字金额输出汉字大写_JS-输入数字输出大写中文
  5. kotlin基础教程:<6>map集合
  6. 如何利用编程思维,提高英语成绩?
  7. 转义字符表大全(转)
  8. Vue 实现附件上传
  9. Eversipn STT-MRAM的MJT细胞
  10. IL遇到的思路及问题