Python爬蟲requests+lxml爬取小說並寫入本地txt文件

這裏選擇使用的python包是requests和lxml

requests負責請求頁面

lxml負責頁面內容的解析和鎖定

#導入相關包
import requests
from lxml import etree
import time

然後是幾個輔助方法

#定義請求函數
def get_html(url,headers):
    response = requests.get(url , headers)
    return response.content
 
 
#定義解析函數
def resolve_html(content):
    html = etree.HTML(content);
    return html

#寫入txt
def save(novel):
    save_path = 'hello.txt'
    fp = open(save_path , 'a',encoding='utf-8',newline='\n')
    fp.write(novel)
    fp.close()

最後是主函數,這裏以爬取筆趣閣站點的<<慶餘年>>爲例

#定義主函數
def main():
   domain = 'http://www.xbiquge.la'#主站
   dirurl = '/1/1690/'#章節列表頁面
   headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0'}#自定義header
   content = get_html(domain+dirurl,headers)
   #獲取各章節地址
   pages = resolve_html(content).xpath('//*[@id="list"]/dl/dd/a/@href')
   #依次爬取章節內容
   for page in pages:
    page_content = get_html(domain+page,headers)
    time.sleep(1)
    html = resolve_html(page_content)
    title = html.xpath('//*[@class="bookname"]/h1')[0].text
    article = html.xpath('//*[@id="content"]/text()')
    print(title)
    save(title + '\n')
    for part in article:
      save(part)

完整代碼:github地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章