【url ---lib___】笔趣阁(抓取斗罗大陆完整)和(三寸天堂)
# coding=gbk #因为在黑屏下执行,所以代码会使用GBK
url='http://www.biquge.info/10_10218/'
UA={"User-Agent":"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"}
UA1={"User-Agent":"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
'Host':'www.xxbiquge.com',
'Referer':'https://www.xxbiquge.com/2_2278/'}
import time,lxml,pymysql
from lxml import etree
from urllib.request import Request
from urllib.request import urlopen
import os,sys,io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') def source(url):#获取源
global UA
text=urlopen(Request(url,None,UA),timeout=5)
return text.read() def respon(text):#解析章
global url
seletor=etree.HTML(text)
url1=seletor.xpath("//*[@id='list']/dl/dd/a/@href")
return url1 def spider(url):#解析内容spider('http://www.biquge.info/10_10218/5002106.html')
global UA1
for i in url:
i='https://www.xxbiquge.com'+i
a=urlopen(Request(i,None,UA1),timeout=5).read()
seletor=etree.HTML(a)
text=seletor.xpath('//*[@id="content"]/text()')#内容
c=''
for aa in text:
c=c+aa text1=seletor.xpath('//html/head/title/text()')[0].split('-')[0]#章节名
#print(i,type(i),text1,type(text1))
mysqlw(c,i,text1)
time.sleep(3) #c=os.path.join(os.path.abspath(os.path.dirname(__name__)),'2.html')
#with open(c,'r') as f:
# a=f.read() def mysqlw(text,url,chapter):#写内容
b1=time.time()
b=pymysql.connect('localhost',port=3306,user='root',passwd='liu',db='test',charset='utf8')
cur=b.cursor()
print(url,chapter,'w') #for i in cur.fetchall():
#pass
sql="""insert into douludalu(souce,html,chapter) values('%s','%s','%s')"""%(text,url,chapter)
print(sql)
try:
cur.execute(sql)
b.commit()
print("插入成功")
except Exception as e:
print(e)
b.rollback()
b.close()
print("关闭",'耗时',time.time()-b1) def mysqlr(text):#读内容
b=pymysql.connect('localhost',port=3306,user='root',passwd='liu',db='test',charset='utf8')
cur=b.cursor()
sql='select * from douludalu where html="%s%s%%s"'%(',text,')
cur.execute(sql)
print(sql)
for i in cur.fetchall():
a=i[0]
b=i[3]
print(a,b) #a='2唐三已经挥出了八千余锤,铁坨不断的变小,已经不到最初时三分'
#mysqlw(a,'1.html','第一章')
def main():
a=source('https://www.xxbiquge.com/2_2278/')
b=respon(a)
spider(b)
#mysqlr('https://www.xxbiquge.com/2_2278/1036550.html')
main()
——————————————————————————————————————————————————————————————————
三寸天堂
# coding=gbk
url='http://www.biquge.info/10_10218/'
UA={"User-Agent":"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"}
UA1={"User-Agent":"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
'Host':'www.biquge.com.tw',
'Referer':'http://www.biquge.com.tw/14_14055/',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'}
import time,lxml,pymysql,threading
from lxml import etree
from urllib.request import Request
from urllib.request import urlopen
import os,sys,io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') def source(url):#获取源
global UA
text=urlopen(Request(url,None,UA),timeout=5)
return text.read() def respon(text):#解析章
global url
seletor=etree.HTML(text)
url1=seletor.xpath("//*[@id='list']/dl/dd/a/@href")
return url1 def spider(url):#解析内容spider('http://www.biquge.info/10_10218/5002106.html')
global UA1
i='http://www.biquge.com.tw/'+url
print(i)
a=urlopen(Request(i,None,UA1),timeout=5).read()
if a is None:
pass
else:
seletor=etree.HTML(a)
text=seletor.xpath('//*[@id="content"]/text()')#内容
c=''
for aa in text:
c=c+aa text1=seletor.xpath('//html/head/title/text()')[0]#章节名
print(text1)
#print(i,type(i),text1,type(text1))
mysqlw(c,i,text1)
time.sleep(3) def mysqlw(text,url,chapter):#写内容
b1=time.time()
b=pymysql.connect('localhost',port=3306,user='root',passwd='liu',db='test',charset='utf8')
cur=b.cursor()
print(url,chapter,'')
#for i in cur.fetchall():
#pass
sql="""insert into suibian(souce,html,chapter) values('%s','%s','%s')"""%(text,url,chapter)
try:
cur.execute(sql)
b.commit()
print("插入成功")
except Exception as e:
print(e)
b.rollback()
b.close()
print("关闭",'耗时',time.time()-b1) def mysqlr(text):#读内容
b1=True
b=pymysql.connect('localhost',port=3306,user='root',passwd='liu',db='test',charset='utf8')
cur=b.cursor()
sql='select * from douludalu where html="%s%s%%s"'%(',text,')
cur.execute(sql)
print(sql)
for i in cur.fetchall():
a=i[0]
b=i[3]
print(a,b)
if i[3] is None:
b1=False def main():
print(threading.current_thread().name)
cc=time.time()
print('开始时间%s'%cc)
a=source('http://www.biquge.com.tw/14_14055/')
b=respon(a)
for i in b:
#print(i)
spider(i)
ctime=time.time()-cc
print('完成耗时%s'%ctime) #c=os.path.join(os.path.abspath(os.path.dirname(__name__)),'1.html')
#with open(c,'r') as f:
# a=f.read()
main()
特别需要注意的是UA在Request中传值会出现错误,这时需要耐心来把问题解决
容易出现的错误【
1,协议中,referer错误,host错误
2,网页xpath错误,目测此网站的网页还是比较规则的
】
【url ---lib___】笔趣阁(抓取斗罗大陆完整)和(三寸天堂)的更多相关文章
- Jsoup-基于Java实现网络爬虫-爬取笔趣阁小说
注意!仅供学习交流使用,请勿用在歪门邪道的地方!技术只是工具!关键在于用途! 今天接触了一款有意思的框架,作用是网络爬虫,他可以像操作JS一样对网页内容进行提取 初体验Jsoup <!-- Ma ...
- scrapy框架爬取笔趣阁
笔趣阁是很好爬的网站了,这里简单爬取了全部小说链接和每本的全部章节链接,还想爬取章节内容在biquge.py里在加一个爬取循环,在pipelines.py添加保存函数即可 1 创建一个scrapy项目 ...
- python入门学习之Python爬取最新笔趣阁小说
Python爬取新笔趣阁小说,并保存到TXT文件中 我写的这篇文章,是利用Python爬取小说编写的程序,这是我学习Python爬虫当中自己独立写的第一个程序,中途也遇到了一些困难,但是最后 ...
- bs4爬取笔趣阁小说
参考链接:https://www.cnblogs.com/wt714/p/11963497.html 模块:requests,bs4,queue,sys,time 步骤:给出URL--> 访问U ...
- 免app下载笔趣阁小说
第一次更新:发现一个问题,就是有时候网页排版有问题的话容易下载到多余章节,如下图所示: 网站抽风多了一个正文一栏,这样的话就会重复下载1603--1703章节. 解决办法: 于是在写入内容前加了一个章 ...
- HttpClients+Jsoup抓取笔趣阁小说,并保存到本地TXT文件
前言 首先先介绍一下Jsoup:(摘自官网) jsoup is a Java library for working with real-world HTML. It provides a very ...
- Python爬取笔趣阁小说,有趣又实用
上班想摸鱼?为了摸鱼方便,今天自己写了个爬取笔阁小说的程序.好吧,其实就是找个目的学习python,分享一下. 1. 首先导入相关的模块 import os import requests from ...
- python应用:爬虫框架Scrapy系统学习第四篇——scrapy爬取笔趣阁小说
使用cmd创建一个scrapy项目: scrapy startproject project_name (project_name 必须以字母开头,只能包含字母.数字以及下划线<undersco ...
- scrapycrawl 爬取笔趣阁小说
前言 第一次发到博客上..不太会排版见谅 最近在看一些爬虫教学的视频,有感而发,大学的时候看盗版小说网站觉得很能赚钱,心想自己也要搞个,正好想爬点小说能不能试试做个网站(网站搭建啥的都不会...) 站 ...
随机推荐
- Java实现ModbusTCP通信
一个项目,需要用Java实现使用ModbusTCP和硬件设备通信 资料 代码下载 本文的代码和仿真软件:蓝奏云下载 官网资料 Modbus官网 Modbus协议 Modbus技术资源 MODBUS T ...
- JAVA 基础编程练习题23 【程序 23 求岁数】
23 [程序 23 求岁数] 题目:有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁.问第 4 个人岁数,他说比第 3 个 人大 2 岁.问第三个人,又说比第 2 人大两岁.问第 ...
- phpcms前台无法退出无法清除cookie
phpcms前台无法退出无法清除cookie 如果caches\configs\system.php 中的cookie_path 设置为空..就会出现退不出的情况..设置为'cookie_path' ...
- linux 文件赋权限
chown tomcat:tomcat /logs chmod 766 /logs
- VICA概述及架构设计
VICA全称VAT Invoice Client Platform(增值税发票客户端平台),顾名思义就是公司增值税发票业务相关处理的客户端集成平台.在VICA出现之前,公司发票开具的技术主要是依赖于A ...
- WhatsApp Group vs WhatsApp Broadcast for Business
WhatsApp Group vs WhatsApp Broadcast for Business By Iaroslav Kudritskiy If you've read our Ultimate ...
- vue中 :style 与 :class 三元运算符使用
参考链接:https://www.jianshu.com/p/31664974303d
- 什么是Java内部类?
如果大家想了解更多的知识和技术,大家可以 搜索我的公众号:理想二旬不止 (尾部有二维码)或者访问我的 个人技术博客 www.ideal-20.cn 这样阅读起来会更加舒适一些 非常高兴与大家交流,学习 ...
- Java:泛型的理解
本文源自参考<Think in Java>,多篇博文以及阅读源码的总结 前言 Java中的泛型每各人都在使用,但是它底层的实现方法是什么呢,为何要这样实现,这样实现的优缺点有哪些,怎么解决 ...
- poi 3061 尺取例题1
题目传送门/res tp poj 白书题 尺取法例题 #include<iostream> #include<algorithm> using namespace std; c ...