tchello 发表于 2021-9-26 09:17:24

萌新求助!!!小说爬取失败!!!

80后没什么文化。上班之余打游戏看看小说。
看见网上教程学习了一下,搞的下小说的。

可以下载一本小说。为什么换一本书就下不了啦?

import requests
import parsel
import time
import tqdm
from tqdm import tqdm

url = 'https://www.shuquge.com/txt/9832/index.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
         'cookie': 'BIDUPSID=45588421F978DE2902A1A47464D72AB3; PSTM=1609986056; BAIDUID=45588421F978DE29E3D21BB7BB5A6873:FG=1; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; __yjs_duid=1_e3607a56e43709e2ca3db4147c46396a1612784778582; BAIDUID_BFESS=45588421F978DE29E3D21BB7BB5A6873:FG=1; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1614696427; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1614697139; __yjsv5_shitong=1.0_7_253e552513b2cf371866473b2e57fb4e5137_300_1614697145680_59.50.85.17_fe15699c; ab_sr=1.0.0_ZDRiZDU1NjAzNjRkMDUyOWE3ZTg3MWZlMjRhMGE4NzkwYmI3N2ExMzliMjY3MjIxOGIyY2EyMmMxNWQzOWFmY2UyZDZjMGFkYzVjNWZkNGQ1ZWIxMTJmYjZjM2Y0M2M2'
         }
#获取网页数据

def get_html(url):

    yuanma = requests.get(url)
    yuanma.encoding = yuanma.apparent_encoding# 自动解决编码问题
    yuanma = parsel.Selector(yuanma.text)
    return yuanma                               #rerurn定义返回值。把yuanma返回。

#获取章节内容
def get_zjlr(url):
    yuanma = get_html(url)
    zhangjie = yuanma.css('div.content > h1::text').get()
    neiron = yuanma.css('#content::text').getall()
    return zhangjie,neiron


#保存内容
def get_baocun(shumin,zjm,neiron):
    with open(shumin + '.txt',mode='a',encoding='utf-8') as f:
      f.write(zjm + '\n')
      for con in neiron[:-3]:
            f.write(con.replace('\xa0',"")+'\n')
            #f.write(con.strio('\xa0'))

#获取章节url
#def get_one_book(index_url):
yuanma = get_html(url)
zjlb = yuanma.xpath('//dl/dd/a/@href').getall()
shumin = yuanma.css('div.info > h2::text').getall()
print(type(shumin))
for i in tqdm(zjlb):
    url = 'https://www.shuquge.com/txt/9832/'+i
    zhangjie,neiron = get_zjlr(url)
    time.sleep(2)
    get_baocun(shumin,zhangjie,neiron)



大神帮忙指点一下啊。。
太深奥的搞不懂啊!!!!!!
谢谢!

suchocolate 发表于 2021-9-26 10:22:38

换一本之后,可能页面上html结构有变化,所以xpath可能就不准了,所以爬不到。

tchello 发表于 2021-9-26 10:38:23

suchocolate 发表于 2021-9-26 10:22
换一本之后,可能页面上html结构有变化,所以xpath可能就不准了,所以爬不到。

麻烦问下怎么决绝啊?

suchocolate 发表于 2021-9-26 10:47:06

tchello 发表于 2021-9-26 10:38
麻烦问下怎么决绝啊?

观察新小说页面的html,根据其结构写新下xpath。
页: [1]
查看完整版本: 萌新求助!!!小说爬取失败!!!