Python爬虫-----爬取某阁小说

本文介绍了使用Python进行网络自动化操作和爬虫数据爬取,特别是针对某阁小说的抓取。首先介绍了所需的库和环境设置,如selenium、tqdm、BeautifulSoup等。接着详细讲解了如何进行web操作搜索小说,存储结果,并获取具体小说的URL。然后,解析小说页面,提取每章的链接和章节名,最后将内容写入TXT文件。完整代码可供分步操作学习。
摘要由CSDN通过智能技术生成

很早以前刚接触python的时候就知道python可以做爬虫,然后自己就学习了下,再借鉴网上大佬的一些经验,写了这么一篇文章。水平有限还请各位大佬莫要见笑,其中有什么问题,以及可优化的地方,也请大佬们提出来,共同学习一起进步!

这篇文章问两个部分web网页自动化操作爬虫数据爬取
因为我借鉴大佬的部分是爬虫那一部分,他只能给特定的url来获取相应的数据,我加入了搜索在选择具体的小说的功能,索引加上了web相关的操作

准备相关的库,以及环境

安装 selenium
安装 tqdm https://blog.csdn.net/DU_Python/article/details/109532477 (自卖自夸一手)
安装 BeautifulSoup
下载 chromedriver 下载地址 http://npm.taobao.org/mirrors/chromedriver/ 一般对应你的谷歌浏览器版本下载就好

  • 首先打开网站笔趣阁,这里加了属性,使浏览器在后台运行
  • 进行web操作,搜索小说将得到的结果存为字典
# _*_ coding=utf-8 _*_
import requests
import time
from tqdm import tqdm
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By


def input_novel_name(novel_name):
    """搜索输入的书名,返回一个书名和相应链接的字典"""
    # 设置浏览器为后台运行模式
    base_url = 'https://www.xsbiquge.com/'
    option = webdriver.ChromeOptions()
    option.add_argument('headless')
    # 以后台运行的方式打开浏览器
    browser = webdriver.Chrome(r'C:\Users\Administrator\PycharmProjects\untitled\spider\chromedriver.exe',
                               options=option)  # 括号内第一个参数为Chromedriver的本地位置
    # 访问网站
    browser.get(base_url)
    # 设置隐式等待
    wait = WebDriverWait(browser, 20, 0.2)
    # web操作的元素定位点
    input_locator = (By.XPATH, "//input[@id='keyword']")  # 搜索框定位
    button_locator = (By.XPATH, "//input[@class='button']")  # 搜索按钮定位
    e = wait.until(expected_conditions.presence_of_element_located(input_locator))  # 等待元素可见
    e.send_keys(novel_name)  # 输入小说名
    b = wait.until(expected_conditions.element_to_be_clickable(button_locator))  # 等待元素可以点击
    b.click()

    try:
        browser.find_element_by_xpath('//img')  # 先做一个判断,看结果页是否包含我们目标页面的元素
        link_name = []  # 存储搜索到的书名
        link_herf = []  # 书名对应的链接
        # 保存整个页面我们需要的内容(每一条结果的title和herf)
        for link in browser.find_elements_by_xpath("//a[@class='result-game-item-title-link']"):
            link_herf.append(link.get_attribute('href'))  # 获取herf属性内容
            link_name.appe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值