专栏首页Python爬虫与数据分析Python爬虫视频以及使用python3爬取的实例

Python爬虫视频以及使用python3爬取的实例

链接: https://pan.baidu.com/s/18iRD2I9t4xHxiSqoe-hFHg 密码: afaf


使用Python3爬取小说,代码看起来有点乱,下面有截图

import requests

from lxml import etree

from multiprocessing.dummy import Pool

import os

import re

#小说的章节地址

chapter_url = "https://www.biqudu.com/43_43821/"

#忽略警告 https请求设置verify=False时 有时候会报错 设置这条语句可以解决

requests.packages.urllib3.disable_warnings()

def get_response(url):

'''

:根据指定URL获取响应数据、

:返回xpath选择器格式的数据

'''

html = requests.get(url,verify=False)

return etree.HTML(html.text)

def get_chapter_content(selector):

'''

:传入xpath选择器格式的数据获取想要的数据

:返回一个包含章节标题,和章节地址的数组

'''

html = []

#根据xpath获取title

title = selector.xpath('//*[@id="list"]/dl/dd/a/text()')

# 根据xpath获取url

href = selector.xpath('//*[@id="list"]/dl/dd/a/@href')

#这里以12开始遍历是因为前面几个数据是不要的

for i in range(12,len(title)):

tit = title[i]

url = "https://www.biqudu.com" + href[i]

chapter = {"title":tit,"url":url}

html.append(chapter)

return html

def save_content(url):

'''

:根据传进来的URL获取数据并保存

:这里的URL传入的事一个字典存储的地址和相对应保存文件的名称

'''

# 保存下载文件的文件夹

folder = 'novel'

# 获取选择器

html = get_response(url['url'])

# 提取出想要的内容

con = html.xpath('//*[@id="content"]/text()')

# 判断文件夹是否存在 不存在就创建

if not os.path.exists(folder):

os.mkdir(folder)

# 去掉非法字符

fileName = re.sub('[\/:*?"<>|]','-',url['name'])

# 保存文件

with open(folder + "/" + fileName + ".txt","w+",encoding="utf-8") as f:

# 得到的是一个list 这里转换为str

content = ''.join(con)

#遍历字符串 保存为每行不好过50个字符

for i in range(0,len(content),50):

f.write(content[i:i+50] + "\n")

def get_content(html):

'''

:并行爬取保存数据

'''

urls = []

for con in html:

url = con['url']

name = con['title']

urls.append({'name':name,'url':url})

# 线程个数

pool = Pool(4)

# 使用map进行并行爬取,save_content为爬取保存函数,

# urls为一个list,里面存储的为网址列表和对应的保存名字

pool.map(save_content,urls)

pool.close()

pool.join()

def main():

selector = get_response(chapter_url)

html = get_chapter_content(selector)

get_content(html)

if __name__ == '__main__':

main()

本文分享自微信公众号 - Python爬虫scrapy(python_scrapy),作者:AndrewAndrea

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 爬取网站文章将图片保存到本地并将HTML的src属性更改到本地

    每次当你爬取一篇文章时,不管是从csdn或者其他网站,基本内容都是保存在一个富文本编辑器中,将内容提取出来还是一个html,保存之后图片还在别人...

    andrew_a
  • 爬虫爬取抖音热门音乐

    获取音乐的网址https://kuaiyinshi.com/hot/music/?source=dou-yin&page=1

    andrew_a
  • 爬虫爬取英文文档存为PDF,在读取PDF自动翻译文档

    这几天在爬了Python的官方文档,但是它里面全是英文,只有数字,没有汉字,原谅我这个英语渣渣搞不懂,只能靠翻译了,如果是复制到百度翻译的话太慢...

    andrew_a
  • python爬虫实现获取下一页代码

    到此这篇关于python爬虫实现获取下一页代码的文章就介绍到这了,更多相关python爬虫获取下一页内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章...

    砸漏
  • 如何用 Python 爬取天气预报

    ? 大家好,我是Victor 278,由于本人是做前端的,Python学来作知识扩充的,看到非常多的小伙伴高呼着想从0开始学爬虫,这里开始写定向爬虫从0开始,...

    CDA数据分析师
  • 二、路由、模板

    一、路由系统 在settings.py文件中通过ROOT_URLCONF指定根级url的配置 urlpatterns是一个url()实例的列表 一个url()对...

    酱紫安
  • 120行代码下载抖音无水印视频「Python语言」

    过年在家没什么事情做,一直在刷抖音,就想写个代码,试着去下载抖音的原视频文件,昨天写了一会,在下载上面出现了问题,没有成功的下载视频文件。今天上午又研究了一下。...

    小白程序猿
  • 关于chrome插件编写的小结

    其中manifest文件最为重要,它定义/指明插件应用的相关信息(权限、版本、功能说明等),点此查看Manifest的详情>>

    meteoric
  • python收集电影下载地址

    import requests import re import time class get_Address(): def get_Dy(self,pages...

    py3study
  • 最强大脑,计算机中1+1=2的实现逻辑

    在计算机硬件层面上,你知道1+1是如何实现的吗?本文先介绍了继电器的基本原理,然后从分析与或非等逻辑门电路入手,推导出异或门的实现,借助异或门从而实现1+1,并...

    腾讯技术工程官方号

扫码关注云+社区

领取腾讯云代金券