爬虫中教你如何爬取自己喜欢博主所写文章标题及网址

965次阅读
没有评论

每日分享:

怎么判断一个人是否合适呢?我觉得,一个合适的人会让你看到和得到全世界,而一个不合适的人会让你失去全世界

博主页面例如下:

爬虫中教你如何爬取自己喜欢博主所写文章标题及网址

1. 在该页面抓包,并找到如下包:

爬虫中教你如何爬取自己喜欢博主所写文章标题及网址

 2. 复制它的网址url,观察每一页的网址,发现url的前面都一样,就最后的数字不同;并复制user-agent,请求为get请求。

3. 找到网页中的a标签(包括title和link),方便抓取标题和链接:

爬虫中教你如何爬取自己喜欢博主所写文章标题及网址

注意:本来应该40个结果,而text()之后有80个(如下图):(所以爬虫代码中列表索引为1,(0没有内容))

爬虫中教你如何爬取自己喜欢博主所写文章标题及网址

 观察网址,不缺东西且是40个,没有问题:(爬虫代码中列表索引正常写为0即可)

爬虫中教你如何爬取自己喜欢博主所写文章标题及网址

 源码如下:(博主博客页数决定循环数)

import requests
from lxml import etree

i = 1
# 我访问的博主博客一共23页,观察每一页的网址发现前面都一样,就最后的数字不同
for i in range(24):
    url = 'https://yangyongli.blog.csdn.net/article/list/{}'.format(i)

    headers = {
        'user-agent': '填自己的user-agent内容'
    }

    response = requests.get(url, headers=headers)
    data = response.content
    # 去除注释(浏览器给你的内容会注释很多有用代码)
    data = data.decode().replace('<!--', '').replace('-->', '')
    html = etree.HTML(data)
    # 找到网页中的a标签(包括title和link)
    el_list = html.xpath('//*[@id="articleMeList-blog"]/div[2]/div/h4/a')
    # 输出一页有多少个
    print(len(el_list))
    # 每一页爬取的结果放到列表里
    data_list = []
    for el in el_list:
        data_list.append(el.xpath('./text()')[1])
        data_list.append(el.xpath('./@href')[0])
    # 写入txt文件中
    f = open('information.txt', 'a', encoding='utf-8')
    for j in data_list:
        f.write(j)
    f.close()
    print(data_list)

结果部分截图如下:

爬虫中教你如何爬取自己喜欢博主所写文章标题及网址

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-19发表,共计1140字。
新手QQ群:570568346,欢迎进群讨论 Python51学习