【Python项目实战】上班工作摸鱼两不误,知乎热门信息一网打尽❤️| 8月更文挑战

423 阅读2分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

爬取目标

网址:知乎热榜 在这里插入图片描述

工具使用

开发环境:win10、python3.7

开发工具:pycharm、Chrome

工具包:requests,lxml, re

项目思路解析

先对目标网址发送网络请求,《import requests 》工具包是要下载的哈,最好是在pycharm里面下载。点击工具栏如下图:

图片.png

然后在输入pip install 就是下载别的命令的,如下图:

图片.png

然后在热搜的空白界面鼠标右键点击弹出的选项查看源代码,可以发现标题,在获取到网页数据,提取到标题数据如下图:

图片.png

获取了网页数据,我们就要通过xpath提取对应图片地址

图片.png

获取详情内容地址,详情地址并不在a标签内哦,我们要用正则提取详情页面地址:

图片.png

详情url需要进行分割替换,获取准确的url地址

简易源码分享

import re   # 正则表达式
import requests   # 发送网络请求
from lxml import etree  # 转换数据的
 
# 同意资源定位符
url = 'https://www.zhihu.com/billboard'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0',
}
# 发送网络请求
response = requests.get(url, headers=headers)
# print(response.text)
# 提取数据   xpath方式   提取数据   正则  bs4
new_url_list = re.findall('link":{"url":"(.*?)"}', response.text)
print(new_url_list)
html_object = etree.HTML(response.text)
a_list = html_object.xpath('//a[@class="HotList-item"]')
# print(a_list)
for a, new_url in zip(a_list, new_url_list):
    title = a.xpath('.//div[@class="HotList-itemBody"]/div[1]/text()')[0]
    url1 = new_url.replace('u002F', '')
    img_url = a.xpath('./div[@class="HotList-itemImgContainer"]/img/@src')[0]
    f = open('知乎热榜数据.text', "a", encoding='utf-8')
    f.write("标题:" + title + '\n')
    f.write("文章地址:" + url1 + '\n')
    f.write("图片地址:" + img_url + "\n")
    f.write("\n")

我是白又白i,一名喜欢分享知识的程序媛❤️

如果没有接触过编程这块的朋友看到这篇博客,发现不会的或者想要学习Python的,可以直接留言或者私我【非常感谢你的点赞、收藏、关注、评论,一键四连支持】