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地址

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