小白之神111 发表于 2019-10-5 03:09

用python爬取小说网站的小说

原本是做之前的项目的,但是一拖再拖到今天都没动手,然后就做了这个,简单看看吧 。

import requests
from lxml import etree
import time
import os
import re

headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36",
         "Referer":"http://www.xbiquge.la/13/13959/"}
#伪造浏览器访问
url="http://www.xbiquge.la/13/13959/"
res=requests.get(headers=headers,url=url)
res.encoding= res.apparent_encoding
response=res.text
#print(response)

html=etree.HTML(response)
title=html.xpath("//*[@id='list']/dl/dd/a/text()")
#小说每个篇章的标题
title_url=html.xpath("//*[@id='list']/dl/dd/a/@href")
pingjie="http://www.xbiquge.la/"
real_url=[]
#小说每个篇章的地址
for neirong in title_url:
    real_url.append(pingjie+neirong)
#print("\n".join(real_url))
#print("\n".join(x for x in title_url))

os.chdir(os.getcwd())
if not os.path.exists(os.getcwd()+"/book"):
    print("目录不存在,准备创建目录")
    os.mkdir("book")
    os.chdir(os.getcwd()+"/book")
else:
    print("目录已存在")
    os.chdir(os.getcwd()+"/book")


#time.sleep(5)
localpath=os.getcwd()#原始目录
print("\n原始地址是:"+str(localpath))
#time.sleep(20)


for i in range(len(real_url)):

    # os.chdir(localpath)# 目录重定位,不然会乱
    # # 给定位,然后判断文件夹在不在,若不在则创建
    # realpath = os.getcwd() + os.path.sep + str(title)+".txt"
    # if not os.path.exists(realpath):
    #   with open(title+".txt","w")as w:
    #         pass
    #   print('\n文件夹' + str(title) + '不存在,创建完成')
    # else:
    #   print('\n文件夹' + str(title) + '已存在,无需创建')
    #
    #
    # print("\n当前目录是:" + str(os.getcwd()) + "\n")








    res = requests.get(headers=headers, url=real_url)
    res.encoding = res.apparent_encoding
    response = res.text
    html = etree.HTML(response)
    word=html.xpath("//*[@id='content']/text()")
    word=str(word)

    c=word.replace(r"\xa0\xa0\xa0\xa0","")
    c=c.replace(r"'\r',","\n")
    c=c.replace(r"\r","")
    c=re.sub(r"[\'\]\[]","",c)
    #c=re.sub(r",$,","",c)
    #print(c)



    with open(title+".txt","w")as f:
      print("正在下载"+str(title)+"\n")

      f.write(c)
      print(str(title)+"下载完成"+"\n")
      f.write("\n\n================")














效果图:
https://attach.52pojie.cn//forum/201910/05/030716jbrl8zmnkre0mra8.png?l   
https://attach.52pojie.cn//forum/201910/05/030718trym7vc70vzdc8av.png?l
是这样的,搞到最后我也没把这后面的逗号去掉,有大神帮小白看看嘛
https://attach.52pojie.cn//forum/201910/05/030837pjnhnbyacwnn99na.png?l




SummerSui 发表于 2019-10-5 08:29


    c=word.replace(r"\xa0\xa0\xa0\xa0","")
    c=c.replace(r"'\r',","\n")
    c=c.replace(r"\r","")
    c=re.sub(r"[\'\]\[]","",c)
改为       
   c=word.replace(r"\xa0\xa0\xa0\xa0","")
   c=c.replace(r"\r', '\r',","\n")
   c=re.sub(r"[\'\]\[]","",c)
效果如下:

Quincy379 发表于 2019-10-5 06:01

大佬,注意休息啊!

小星学破解 发表于 2019-10-5 07:11

楼主爬取这个把:https://www.kuaiyankanshu.net
这个快眼看书,基本是无错字。笔趣阁的源全是错字,少字,没啥意义。

小星学破解 发表于 2019-10-5 08:52

SummerSui 发表于 2019-10-5 08:29

    c=word.replace(r"\xa0\xa0\xa0\xa0","")
    c=c.replace(r"'\r',","\n")


大佬试试快眼看书,这个书源基本是无错字的。比笔趣阁,好用,如果能做出一键下载,或者预览工具,就更好了

光年之外 发表于 2019-10-5 08:55

谢谢分享

ghoob321 发表于 2019-10-5 09:00

初学的可以看看

ghoob321 发表于 2019-10-5 09:20

本帖最后由 ghoob321 于 2019-10-5 09:48 编辑

\xa0
是什么东东?print 才发现

SummerSui 发表于 2019-10-5 23:12

小星学破解 发表于 2019-10-5 08:52
大佬试试快眼看书,这个书源基本是无错字的。比笔趣阁,好用,如果能做出一键下载,或者预览工具,就更好 ...

我看了看那个网站,目前我时间不充裕,之后有空写好回复你

随梦期初 发表于 2019-10-6 08:52

小星学破解 发表于 2019-10-5 08:52
大佬试试快眼看书,这个书源基本是无错字的。比笔趣阁,好用,如果能做出一键下载,或者预览工具,就更好 ...

快眼看书好几个网站。。。
页: [1] 2
查看完整版本: 用python爬取小说网站的小说