日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬去起点中文网小说

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬去起点中文网小说 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

爬取《起點》中文網 免費小說

前言: 第一次寫這么復雜的程序,歡迎各位大佬批評指正。。

  • 去分析《起點》中文網的響應數據 (https://www.qidian.com/free/all)
    第一步,檢查網頁的response響應,通過打開NETwork發現起點中文網的有Referer反爬,

    2.通過調試和分析數據 發現我們要的數據是嵌套在html里面的,我們利用xpath提取出我們想的每一部小說的url 和名字


  • 3.我們拿到了 每一頁中的所有的小說url 下一步就是提取小說的入口 通過分析得知 小說的入口也是嵌套html里面的

    4.分析小說文本的數據

    import requests
    from lxml import etree
    from fake_useragent import FakeUserAgent

    if name == ‘main’:
    for i in range(int(input(‘輸入爬取的頁說(一頁是二十本小說)>>>>>>:’))):
    # 確定目標的url——
    url_ = f’https://www.qidian.com/free/all?orderId=&vip=hidden&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=1&page={i + 1}’
    # 構造身user身份
    user = FakeUserAgent().random
    headers_ = {
    ‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36’,
    ‘Cooie’: ‘e1=%7B%22pid%22%3A%22qd_P_free%22%2C%22eid%22%3A%22qd_C44%22%7D; e2=%7B%22pid%22%3A%22qd_P_free%22%2C%22eid%22%3A%22qd_C44%22%7D; csrfToken=Bf8rW9wM2hTvLVvBKEeorxq58HVuMaROuzWo9N2E; newstatisticUUID=1610114709_606719731; yep_uuid=325a69ff-672a-68c2-ed48-6e113af5cb65; qdrs=0%7C3%7C0%7C0%7C1; showSectionCommentGuide=1; qdgd=1; e1=%7B%22pid%22%3A%22qd_P_limitfree%22%2C%22eid%22%3A%22qd_E01%22%2C%22l1%22%3A4%7D; e2=%7B%22pid%22%3A%22qd_P_limitfree%22%2C%22eid%22%3A%22qd_A18%22%2C%22l1%22%3A3%7D; bc=1021516016%2C1017918245%2C1025325411%2C1024892080; lrbc=1025325411%7C625665811%7C0%2C1024892080%7C613857996%7C0%2C1021516016%7C630782911%7C1; rcr=1025325411%2C1024892080%2C1017918245%2C1021516016’,
    ‘Referer’: ‘https://book.qidian.com/’
    }
    # 發送請求得到響應
    res = requests.get(url, headers=headers_).text
    data_ = etree.HTML(res_)
    # 提取每一本小說對應的url
    url_list = data_.xpath(’//div[@class=“book-mid-info”]/h4/a/@href’)
    a = []
    for k in url_list:
    j = ‘http:’ + k
    a.append(j)

    b = []for p in a:res_1 = requests.get(url=p, headers=headers_).textdata = etree.HTML(res_1)name1 = 'http:' + data.xpath('//div[@class="book-img"]/a/@href')[0]b.append(name1)print(b)# 給每一本對應的小說的url 發送請求 然后一次下載小說for l_3 in b:# 發送網絡請求response_ = requests.get(url=l_3, headers=headers_).text# print(response_)# 轉換xpath格式 提取數據data_1 = etree.HTML(response_)# 小說《名字》name_ = data_1.xpath('//div[@class="crumbs-nav"]/a[@class="act"]/text()')[0]print(name_)# 對應章節標題res_1 = data_1.xpath('//h3/span[@class="content-wrap"]/text()')[0]# print(res_)# 提取小說內容res_data = '\n'.join(data_1.xpath('//div[@class="read-content j_readContent"]/p/text()'))# print(res_data)# 提取下一章的urlurl_list1 = 'http:' + data_1.xpath('//div[@class="text-wrap"]/@data-nurl')[0]print(url_list1)with open(f'{name_}.txt', 'a', encoding='utf-8')as f:f.write(f'{res_1}\n')f.write(res_data)print(f'[{name_}]章節>>>【{res_1}】下載完畢')try:# 同過提取下一章的url 把它放在一個死循環里。依次寫入while True:res_2 = requests.get(url=url_list1, headers=headers_).text# 文章標題res_two = etree.HTML(res_2)res_hea = res_two.xpath('//h3/span[@class="content-wrap"]/text()')[0]# 文 章內容res_two_data = '\n'.join(res_two.xpath('//div[@class="read-content j_readContent"]/p/text()'))# 判斷文章的內容是否為空 如果為空的話就結束死循環if not res_two_data:break# 下一章的url_會依次傳入到73的get請求 來到達循環下載url_list1 = 'https:' + res_two.xpath('//div[@class="text-wrap"]/@data-nurl')[0]f = open(f'{name_}.txt', 'a', encoding='utf-8')f.write(f'{res_hea}\n')f.write(f'{res_two_data}')print(f'[{name_}]章節[{res_hea}]下載完畢')except:print(f'{name_}所有章節下載完成>>>>>>>>>>>>!!!!!')

    總結

    以上是生活随笔為你收集整理的爬去起点中文网小说的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。