python 人生的第一个小爬虫 爬小说 保存一下
# -*- coding:UTF-8 -*-
from urllib import request
from bs4 import BeautifulSoup
import chardet
import re
def download(urls):
#下载for item in urls:print(item[3] + ':' + 'http://www.biquge.com.tw' + item[1])#输出一下找到了那些章节,与对应的网址sure = input("是否下载这些章节y/n(下载在当前目录下,访问上面链接可以直接观看):")if sure == 'y' or sure == 'Y':for item in urls:f = open(item[3], mode='w+', encoding='utf-8')#创建文本用章节名命名download_url = 'http://www.biquge.com.tw' + item[1]head = {}head['User-Agent'] = 'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'download_req = request.Request(url=download_url, headers=head)download_response = request.urlopen(download_req)download_html = download_response.read().decode('gbk', 'ignore')soup_texts = BeautifulSoup(download_html, 'lxml')#获取章节的内容页,解码并结构化texts = soup_texts.find_all(id="content")soup_text = BeautifulSoup(str(texts), 'lxml')#找到需要的内容f.write(soup_text.div.text.replace('\xa0', ''))#把不要的字符去掉如何写入文本f.closeprint(item[3]+" 下载完成\n")print('all down')return
def find_url(target_url):
#从目录页获取每一个章节的网址head = {}head['User-Agent'] = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19"req = request.Request(url=target_url, headers=head)#设置代理头,这个网站不知道python的默认头能不能访问response = request.urlopen(req)html = response.read()code = chardet.detect(html)['encoding']#这个不能用,因为它会识别为简体但是还有一部分是繁体html = html.decode('gbk')#用gbk解码支持简繁soup = BeautifulSoup(html, 'html.parser')#用beatifulsoup结果化一下,不要也可以 result = re.findall('<a(.*?)href\=\"(.*?)\"(.*?)>(.*?)</a>', str(soup.find_all(id='list')))#正则匹配download(urls=result)
def search(txt_name):
#利用笔趣阁网站的搜索功能target_name = str(txt_name.encode("GBK")).upper()#这个网站用的get方法,搜索的内容用GBK编码加在后面,但并不是直接加要变换target_url = 'http://www.biquge.com.tw/modules/article/soshu.php?searchkey='i = 2while i < len(target_name) - 1:if target_name[i] == '\\':target_url += '%'i += 2continuetarget_url += target_name[i]i += 1#此时的target_url的内容就是处理后的网址head = {}head['User-Agent'] = 'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'req = request.Request(url=target_url, headers=head)html = request.urlopen(req)if target_url != html.geturl():#这个网站如果搜索结果只有一个就会自动打开print("已经找到,正在提取\n")target_url=html.geturl()find_url(target_url)returnhtml = html.read().decode('GBK')result = re.finditer(r'<td class="odd"><a href="(.*?)">(.*?)</a>', html)#正则匹配flag = 0for item in result:#在多个结果中找到我们要的那个,此处修改可以支持模糊化搜索if item[2] == txt_name:target_url = item[1]print("已经找到,正在提取\n")find_url(target_url=target_url)returnprint('找不到')
if __name__=='__main__':name = input("输入要找的小说名称:")search(txt_name=name)
python 人生的第一个小爬虫 爬小说 保存一下相关推荐
- 小爬虫爬取小猫咪图片并存入本地文件夹
小爬虫爬取小猫咪图片并存入本地文件夹 本人是安徽工业大学电气与信息工程学院研一学生,最近还不能开学真的是很糟心哦,由于自己比较笨吧,起步较晚还要忙着学习机器学习还有计算机视觉,但是总学这个感觉很闷也没 ...
- 第一个python爬虫_Python爬虫01——第一个小爬虫
Python小爬虫--贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写. 目标: 首先肯定要实现图片抓取这个基本功能 然后实现对用户所给的链接进行抓取 最后要有一定的 ...
- Python爬虫01——第一个小爬虫
原文:https://www.cnblogs.com/Axi8/p/5757270.html Python小爬虫--贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写. ...
- Python日记——柿子要捡软的捏,记第一只小爬虫
2017.12.19 阅读了<零基础入门学习Python>一书第14章"论一只爬虫的自我修养"之后总想跃跃欲试实现一只自己的小爬虫,但可惜的是,或许因为这本书的读者太多 ...
- 写个小爬虫爬下迅雷会员
好久不写爬虫...忘了个锤子.于是借着学java的机会用java写个爬虫 爬取静态页面 迅雷会员账号和密码.时时获取最新的~ 先上我暑假写的python版~ : # -*- coding: utf-8 ...
- python搞笑动态图_python小爬虫抓取搞笑图片
大部分小程序都是基于py2.7的,我于是便想直接出一个py3.4最新版本的教程.大致看一下第一篇了解一下的一些概念性的东西以及bs4第三方库的使用.请参考文末. 我们的第一个小程序的相关要求: 目标: ...
- python将txt转为字符串_python做第一只小爬虫
"受尽苦难而不厌,此乃修罗之路" 本文技术含量过低,请谨慎观看 之前用R语言的Rcurl包做过爬虫,给自己的第一感觉是比较费劲,看着看着发际线就愈加亮眼,最后果断丢之.不过好的是和 ...
- Python爬虫——第一个小爬虫(经典)修改版
贴吧图片的爬取 一.页面获取 要让python可以进行对网页的访问,那肯定要用到urllib之类的包.So先来个 import urllib.request 由于Python3里的urllib模块已经 ...
- python小爬虫(爬取职位信息和博客文章信息)
1.python爬取招聘信息 简单爬取智联招聘职位信息(仅供学习) # !/usr/bin/env python # -*-coding:utf-8-*- """ @Au ...
最新文章
- 一周内,在闲鱼上被疯狂转了 2 万次的 Linux 命令大全!!!
- win10系统 计算机配置要求高吗,win10配置要求_win10配置要求高吗-太平洋电脑网
- wps合并所有sheet页_Python一键合并上千个Excel表,一天的工作量一小时搞定!下班...
- 海南工会云会员认证_五一有奖答题来了,欢迎广大工会会员登录参与活动
- shopex证书无法安装解决方法探讨
- Mac OS defaults命令(Access the Mac OS user defaults system)
- 小学奥数 7654 等差数列末项计算 python
- 42 WM配置-作业-库存盘点-定义默认设置
- Java连接Elasticsearch6.xxx 环境测试篇一
- 设计师分享社区,展示风采平台
- CCF NOI1007 计算余数
- HCIE-Security Day32:IPSec:深入学习ipsec ikev1、主模式、野蛮模式、快速模式、dh算法、预共享密钥
- NET Core-学习笔记(二)
- 物联网时代即将到来,LED显示屏内容显示安全尤为重要
- 怎么把mov转换为mp4?
- Nginx+Tomcat实现负载均衡、动静分离集群部署
- 读懂 指令、程序、微命令、微操作、微指令、微程序、微地址
- 最全的阿里面试经验(一)
- Markdown个人学习记录
- 用PHP写了个 标签 按点击率的 字体大小和颜色的 显示效果
热门文章
- 请列举出3个Vue中常用的生命周期钩子函数?
- 【转】“百度被黑” 分析师认为不亚于制造“911事件”
- 【Grafana】【八】可视化之Stat、Gauge和Bar Gauge
- NIS详解(概念、搭建NIS服务器、实验演示)
- 技术科普丨平台效果调试篇3-AWB Gain Adjust
- 五福背后的 Web 3D 引擎 Oasis Engine 正式开源
- MySQL 技术内幕——存储引擎
- additional、extra与supplementary 区别
- pytest—pytest.mark.parametrize的使用
- A ResourcePool could not acquire a resource from its primary factory or source异常解决