当前位置:   article > 正文

Python爬取笔趣阁小说(新手可入~)_爬取笔趣阁小说内容

爬取笔趣阁小说内容

一个简单的爬取,完整代码放在最后~~~

笔趣阁网址:https://www.biqg.cc/

首先导入需要的库

  1. import requests
  2. import re
  3. from bs4 import BeautifulSoup
  4. import time

点击第一篇文章,按F12进入开发者模式

选择NetWork找到代理服务器

将网址和代理填进去

  1. # 设置代理服务器
  2. headers = {
  3. 'User_Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
  4. }
  5. # 请求网址
  6. url = 'https://www.biqg.cc/book/6909/1.html'
  7. response = requests.get(url, headers=headers)

为了防止文字乱码,还要对其进行转化格式

  1. # 转化为utf-8格式,不加这条语句,输出爬取的信息为乱码
  2. response.encoding = 'utf-8'

使用Beautiful Soup解析网页代码

  1. #获取到源码
  2. html = response.text
  3. #使用Beautiful Soup解析网页内容
  4. soup = BeautifulSoup(html, 'html.parser')

找到标题

使用正则表达式提取标题:

  1. # 正则表达式解析小说章节标题
  2. pattern1 = re.compile(r'<h1 class="wap_none">(.*?)</h1>')
  3. title = re.findall(pattern1, html)

找到小说内容

这里我们用Beautiful Soup来提取

  1. #解析小说章节正文内容
  2. text = soup.find('div', id='chaptercontent').text

打印输出

  1. print(title)
  2. print(text)

第一章提取完成!!!

接下来可以多提取几章,注意观察网址的变化:

因此对网址加个for循环就可以提取多章小说了

  1. for page in range(11): # 爬取10章小说
  2. # 请求网址
  3. url = 'https://www.biqg.cc/book/6909/'+str(page)+'.html'
  4. time.sleep(1) # 防止操作过快,网站防爬

最后将内容写入文本文件

  1. with open('novel.txt', 'a', encoding='utf-8') as file:
  2. file.write('\n'.join(title))
  3. file.write('\n')
  4. file.write(text)
  5. file.write('\n\n')

完整代码如下:

  1. import requests
  2. import re
  3. from bs4 import BeautifulSoup
  4. import time
  5. for page in range(11): # 爬取10章小说
  6. # 请求网址
  7. url = 'https://www.biqg.cc/book/6909/'+str(page)+'.html'
  8. time.sleep(1) # 防止操作过快,网站防爬
  9. # 设置代理服务器
  10. headers = {
  11. 'User_Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
  12. }
  13. response = requests.get(url, headers=headers)
  14. if response.status_code == 200: #状态码200表示请求成功
  15. # 转化为utf-8格式,不加这条语句,输出爬取的信息为乱码
  16. response.encoding = 'utf-8'
  17. #获取到源码
  18. html = response.text
  19. #使用Beautiful Soup解析网页内容
  20. soup = BeautifulSoup(html, 'html.parser')
  21. # 正则表达式解析小说章节标题
  22. pattern1 = re.compile(r'<h1 class="wap_none">(.*?)</h1>')
  23. title = re.findall(pattern1, html)
  24. #解析小说章节正文内容
  25. text = soup.find('div', id='chaptercontent').text
  26. # 打印输出
  27. print(title)
  28. print(text)
  29. # 写入txt文件
  30. with open('novel.txt', 'a', encoding='utf-8') as file:
  31. file.write('\n'.join(title))
  32. file.write('\n')
  33. file.write(text)
  34. file.write('\n\n')

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/825094
推荐阅读
相关标签
  

闽ICP备14008679号