python爬虫入门实践--爬取古诗文网站

实践目的:利用bs4通过标签,属性,类的解析进行对文章内容的爬取

 

 首先在书介绍的网站上找到每一章节的href连接

href在 class=book dl的标签下.

第一步:实例化一个soup对象

 

import requests
import os
from bs4 import BeautifulSoup
url0='https://www.shicimingjv.com/bookindex/96.html'
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.24'
}
page_text=requests.get(url0,headers=headers).text
soup=BeautifulSoup(page_text,'lxml')#soup对象需要对response的text文本内容进行创造

利用soup的方法select方法对每一章节进行搜所

soup.select("css选择方法") 

所以在此处要找到class=book-tags下面的一个个li标签 select会返回一个列表,每个列表种应该也是一个对象

如果想跨标签寻找 可以把>换成 空格 就不用一层层去找到所需标签

mulu_list=soup.select('.book-tags > li')

对li标签内容进行解析,获得href属性和title属性 

 文章连接,标题都在a标签种,用标签对象.a获取标签种的a标签 有href属性和 title属性 

先通过循环的到每一个li标签,然后通过['herf'] 和 ['title']来获得内容

当然也可以用li.a.text获得当前标签下层的所有文本内容

for i in mulu_list:
    title=i.a['title']
    href=i.a['href']

套娃对href连接进行get请求获得文章内容

if os.path.isdir('./爬取的小文章'):
    pass
else:
    os.mkdir('./', '爬取的小文章')
for part in mulu_list:
    url1=part.a['href']
    title=part.a['title']
    detail_text=requests.get(url1,headers=headers).text
    detail_soup=BeautifulSoup(detail_text,'lxml')
    content_tag=detail_soup.find('p',class_='noindent')
    content=content_tag.text
    filename=title+'.txt'
    with open(f'./爬取的小文章/{filename}', 'w+', encoding='utf-8') as fp:
        fp.write(content)
        print(f"{filename} 已经爬取成功")

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值