开干,BeautifulSoup爬取小说,宅家也能快乐过眼瘾(大白话讲解,后面附源码)

引言:

不瞒大家,小编学编程之前就有一个梦想,夏日在家开空调,喝可乐,在别人面前装逼,在电脑前一顿操作(自然也少不了让人欲罢不能的小说)😎


目标网址:https://m.qb5.tw/book_8227

1,爬取网页源码

2,在网页源码中提取带章节url的元素

3,在元素中提取出url,并对提取的url进行请求,把爬到的文章下载下来

ps:此教程为基础教程,代码是小编用最基本的语法自己写的,所以代码可读性应该还行😎,代码质量若有不足之处还请大佬指正😳🙏,

以后会带大家解锁多线程之类的高级玩法😇


先备好相关库:

import requests

from bs4 import BeautifulSoup

1,爬取网页源码

url="https://m.qb5.tw/chapters_8227/"

a=requests.get(url)

print(a)#验证一下是否爬取成功

看了上面这几行代码大家大家应该可以发现请求的url和上面给的url有些出入😮,那是因为上面给的url是那个小说网站的首页😐,我的代码上的url是打开那个网站后点开后点击网站的目录链接所得到的url😘,我要获取每个章节的网址,所以我要从目录业中获取,大家应该没意l见吧😅

2,在网址中提取出章节的url

还是老生常谈 -BeautifulSoup解析提取

soup1=BeautifulSoup(a.text,"html.parser")#解析成BeautifulSoup格式

v=soup.select("a[href]")

'''

css选择器提取带超链接的元素-说白了就是提取出带章节url的元素(当然这不是很严谨,因为也有其它的东西)

我们可以尝试输出一下发现它前几个并不是我们想要的链接,这样就会导致请求的时候会报错😨,怎么办呢,我们可以用下边的列表方法把要看的章节单独拎出来😎)

'''

x=v[4],v[5]#列表方法单独拎出带第一,二章url的元素

3,在元素中提取出url,并对提取的url进行请求,把爬到的文章下载至本地

for i in x:

   urls=i.get("href")

   print(urls)#验证一下

   reponses=requests.get(urls)

   print(reponses)#验证一下

  soup2=BeautifulSoup(reponses.text,"html.parser")#BeautifulSoup解析

  for i in soup2:

    text=i.text#提取出文本内容并命名为text

     with open("宅家看小说","w")as f:

        f.write(text)#下载下来

     print("爬取完毕")


源码:ps:由于手机版权低,所以无法上传图片,这里用文字代替了

import requests

from bs4 import BeautifulSoup

url="https://m.qb5.tw/chapters_8227/"

a=requests.get(url)

print(a)

soup1=BeautifulSoup(a.text,"html.parser")

v=soup1.select("a[href]")

x=v[4],v[5]

for i in x:

  urls=i.get("href")

  reponses=requests.get(urls)

  print(urls)

  print(reponses)

  soup2=BeautifulSoup(reponses.text,"html.parser")

   text=soup2.text

   print(text)

   with open("宅家看小说","w")as t:

      t.write(text)

    print("爬取完毕")

这个网站可能有反爬😱,所以可能会出现响应状态码为200但服务器不反会内容的情况😦,后期会讲反反爬😎,这里大家如果遇到了这种情况多试几次就可以了

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值