python before content内容爬取_零基础自学爬虫(6)爬取电子书内容并保留格式-附Python源代码...

朋友找我写了一个小爬虫脚本,她想获取某个网站上某本书的所有文本,且需要保留原来的格式。

网页长这个样子。—— 爬虫跑完,把数据文件发给她,她开心地说要请我喝咖啡。呵!

0f983ec5d8ab27f5d6c92192c8196cb0.png

以下是源代码。

第一步,启动driver,无头模式。

from time import sleep
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import pandas as pd
import random

# 启动 driver,无头模式
def start_driver_dark():
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--disable-gpu")
    driver = webdriver.Chrome(options=chrome_options)
    return driver

driver = start_driver_dark()

第二步,获取所有章节信息:标题、url。

url = 'http://xiaolai.co/books/8327ac77840b8e66d8245eef28052099/index.html'
driver.get(url)
sleep(2)
# 获取所有章节的信息
chaptersx = driver.find_elements_by_xpath('/html/body/div/div[1]/nav/ul//li/a')
chapters = {}
n = 0
for c in chaptersx:
    chapters[n] = {}
    chapters[n]["title"] = c.text
    chapters[n]["url"] = c.get_attribute("href")
    n += 1

1d729f79e079299ef5a5f27fa1de5310.png

第三步,读取章节的内容,并把 html 源码写文件。

不直接爬取文本,而是爬取文本及其包含的html源码,是为了保留所有格式信息。

# 读取章节的内容,并把 html 源码写文件。

n = len(chapters)
for i in range(n):
    urlx = chapters[i]["url"]
    driver.get(urlx)
    sleep(2)
    page = driver.find_element_by_class_name('page').get_attribute("outerHTML")
    with open("yc.html","a+",encoding="utf-8") as f:
        f.write(page)

第4步,秘密武器,直接把html源码在线一键转换为 markdown 语法的文本,保存到 yc.md文件交活。

齐活,收工。

点赞,收藏,关注,分享四连。好人一生平安。

看不懂的,评论留言问我。

想知道秘密武器是什么,站内私信我。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值