爬虫 使用无头浏览器爬取数据---(小说篇)

目录

图片展示:

        第一张图片:表示要爬取的每个目录的链接地址和标题

        第二张图片:表示爬取目录下的内容 


图片展示:
        第一张图片:表示要爬取的每个目录的链接地址和标题

        第二张图片:表示爬取目录下的内容 

 

代码:

from selenium import webdriver
from lxml import etree

# 使用webdriver.Edge()创建一个Edge浏览器的WebDriver对象,命名为driver,用于控制和操作浏览器。
driver = webdriver.Edge()
# 将要访问的小说目录页面的网址保存在url变量中。
url = "爬取的网站"  # 要换成你要爬取的网站
# 使用WebDriver对象的get()方法,通过传入url参数来访问指定的网址。
driver.get(url)
# 使用WebDriver对象的page_source属性,获取当前页面的源代码,保存在page变量中。
page = driver.page_source
# 使用etree库中的HTML()方法,将获取到的页面源代码解析为一个可操作的XML树结构,保存在tree变量中。
tree = etree.HTML(page)

# 使用XPath语法,从XML树结构(tree)中找到所有章节所在的dd元素节点,将结果保存在index变量中。
index = tree.xpath('/html/body/div[1]/div[5]/div/dl/dd')

# 创建一个空列表lst,用于保存每个章节的链接。
lst = []

# 使用for循环遍历每个章节的索引值。
for i in range(1, len(index) + 1):
    # 使用当前索引值i构建XPath表达式,找到对应章节的链接所在的a元素节点,并通过.get('href')方法获取链接内容,保存在a变量中。
    a = tree.xpath(f'/html/body/div[1]/div[5]/div/dl/dd[{i}]/a[@href]')[0].get('href')
    # 将获取到的链接添加前缀’http:',保存在url2变量中。
    url2 = 'http:' + a

    # 将每个章节的链接添加到lst列表中。
    lst.append(url2)

# 使用for循环遍历lst列表中的每个章节链接。
for i in lst:

    # 使用WebDriver对象的get()方法,通过传入章节链接i来访问对应的章节页面。
    driver.get(i)
    # 获取当前章节页面的源代码,保存在page变量中。
    page = driver.page_source
    # 将获取到的当前章节页面源代码解析为一个新的XML树结构,保存在tree变量中。
    tree = etree.HTML(page)
    # 使用XPath语法,从新的XML树结构(tree)中找到章节标题所在的元素节点,提取标题内容,保存在title变量中。
    title = tree.xpath('/html/body/div[1]/div[4]/div/div[2]/h1/text()')[0]
    # 使用XPath语法,从新的XML树结构(tree)中找到章节正文所在的元素节点,提取正文内容,保存在content变量中。
    content = tree.xpath("/html/body/div[1]/div[4]/div/div[4]/text()")
    
    # 打印标题和内容
    print(title)
    print(content)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值