python爬虫入门实战--爬取小说

python爬虫入门实战–爬取小说

**@更多基础加交流3群698307198喽;
一键加群:点击加群
和更多作者同群交流

先看效果.
在这里插入图片描述
环境:python3.9.5
使用调试工具:Visual Studio Code
pip版本:21.2.2

如果提示pip需要升级
可以参考
点击这里

实现代码

import os
import requests
import bs4
from bs4 import BeautifulSoup
#记得先安装 pip install requests
#pip install BeautifulSoup4
# 声明请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'
}
 
# 创建保存玄幻小说文本的文件夹.如果目录不存在.(加交流3群698307198)
if not os.path.exists('./玄幻'):
    os.mkdir('./玄幻/')
     
# 访问网站并获取页面数据.
#response = requests.get(address).text
#print(response)这样会乱码
address="http://www.biquw.com/book/951/"

#### 我们看到用上面的代码乱码了.所以需要重新编写访问代码
response = requests.get(address)
#http://www.biquw.com/book/17991/
response.encoding = response.apparent_encoding
print(response.text)
 
'''
这种方式返回的中文数据
'''
'''
f12大法看网页源码可以知道.数据是保存在a标签当中的。
a的父标签为li,li的父标签为ul标签,ul标签之上为div标签。
所以如果想要获取整个页面的玄幻章节数据,那么需要先获取div标签。
并且div标签中包含了class属性,我们可以通过class属性获取指定的div标签,详情看代码~
'''
soup = BeautifulSoup(response.text, 'html.parser')
book_list = soup.find('div', class_='book_list').find_all('a')
# soup对象获取批量数据后返回的是一个列表,我们可以对列表进行迭代提取
for book in book_list:
    book_name = book.text
    # 获取到列表数据之后,需要获取文章详情页的链接,链接在a标签的href属性中
    book_url = book['href']


    book_info_html = requests.get(address + book_url, headers=headers)
    book_info_html.encoding = book_info_html.apparent_encoding

    soup = BeautifulSoup(book_info_html.text, 'html.parser')
    info = soup.find('div', id='htmlContent')
    print(info.text)

    with open('./玄幻/' + book_name + '.txt', 'a', encoding='utf-8') as f:
      f.write(info.text)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于爬取动态加载的页面,可以使用 Selenium 库来模拟浏览器的操作。以下是一个简单的示例,展示了如何使用 Selenium 进行动态页面的爬取: 首先,确保已安装 Selenium 库: ``` pip install selenium ``` 然后,根据你使用的浏览器,下载对应的 WebDriver。比如,如果你使用的是 Chrome 浏览器,可以前往 Chrome WebDriver 官网(https://sites.google.com/a/chromium.org/chromedriver/)下载对应版本的 WebDriver。 接下来,编写 Python 代码: ```python from selenium import webdriver # 声明并初始化一个 WebDriver 对象 # 这里以 Chrome 浏览器为例,需要指定 Chrome WebDriver 的路径 driver = webdriver.Chrome('/path/to/chromedriver') # 访问目标网页 driver.get('https://example.com') # 执行一些操作,模拟用户交互 # ... # 获取页面源代码,包含动态加载的内容 html = driver.page_source # 关闭 WebDriver driver.quit() # 处理获取到的页面源代码 # ... ``` 在代码中,首先创建了一个 WebDriver 对象,并指定了 WebDriver 的路径。然后使用 `get()` 方法访问目标网页。 接下来,你可以执行一些模拟用户交互的操作,例如点击按钮、填写表单等等,以加载动态内容。 最后,使用 `page_source` 属性获取页面的源代码,其中包含了动态加载的内容。你可以根据需要对获取到的源代码进行处理,提取出你感兴趣的信息。 最后别忘了关闭 WebDriver,以释放资源。 希望这个示例能够帮助你入门动态页面的爬取!如果有更多问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值