【python实战系列】方便的工具-网络爬虫(六)

今天晚上就在我刚刚学了一点python的爬虫时,我的室友找到了我,说他最近关注了一个很有意思的博主,想把他的文章内容全部抓取下来,方便查看。听说我最近学点一点点爬虫的小技巧,于是想让我帮帮忙。

    正好我学了爬虫没地方去使用,于是我拿起键盘就敲起了代码。首先找到那位博主,分析分析他文章的结构:

    进入该网页:https://blog.csdn.net/evan_qb/article/list/1,我们开始分析,最后的1,肯定是分页的数据,我们可以通过改变数组来获取不同分页的数据。

     接着我们通过chrome浏览器来审查一下每个文章的HTML元素:

 

【python实战系列】方便的工具-网络爬虫(六)_第1张图片

可以看到,我们需要的信息都在class="article-list"下面的class="csdn-tracking-statistics"盒子下面,我们可以通过python提供的BeautifulSoup库来获取这一块的内容。

     整理一下,我们的获取思路如下:

          1. 通过requests请求地址获取整个网页的内容

          2. 再通过BeautifulSoup获取以上元素的内容

          3.最后通过一些处理,获取我们需要的数据

import requests, bs4

count = 1

# #  article-item-box > article-item-box

url = 'https://blog.csdn.net/Evan_QB/article/list/'
downpath = 'F:\\test\\download\\Evan_QB发布的文章列表.txt'
downFile = open(downpath, 'a', encoding='utf-8')
for i in range(1, 13):
    downFile.write('='*30 + '第' + str(i) + '页' + '='*30 + '\r\n')
    # 获取内容
    res = requests.get(url + str(i))
    res.raise_for_status()
    noStarchSoup = bs4.BeautifulSoup(res.text, 'lxml')
    # 解析内容
    # select获取对应元素的数据
    itembox = noStarchSoup.select('.article-list .csdn-tracking-statistics h4 > a')

    for item in itembox:
        # 获取链接地址
        itemUrl = item.attrs['href']
        cons = item.text.strip().split(' ')
        # 获取文章标题
        docTitle = cons[len(cons) - 1]
        downFile.write(str(count) + '.' + docTitle + '\t' * 2 + itemUrl + '\r\n')
        count += 1
print('获取成功')
downFile.close()

 

 

我们可以把获取到的内容存入文件,以便查看

【python实战系列】方便的工具-网络爬虫(六)_第2张图片

 

喜欢本文的话,可以关注以下公众号,每天定时更新一篇python学习日记,让我们一起成长!

 

你可能感兴趣的:(python实战系列)