Python爬虫速成之路(5):获取北京新闻的今日推荐

 hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
19d95742d45b4220ad0ae0359ffcba93.png

💥个人主页绝命Coding-CSDN博客
💥 所属专栏后端技术分享
这里将会不定期更新有关后端、前端的内容,希望大家多多点赞关注收藏💖

爬虫程序可以通过模拟浏览器行为,从指定的网站上获取内容。在本文中,我们将介绍如何使用Python的urllib和BeautifulSoup库来实现获取新闻推荐内容和对应图片的功能。

首先,我们需要导入必要的库。通过urllib库中的request模块,我们可以发送HTTP请求并获取响应。通过BeautifulSoup库,我们可以解析HTML文档,提取所需的内容。

在代码中,我们首先创建了一个用于保存图片的文件夹。然后,我们定义了目标网站的URL,并创建了Request对象,设置了User-Agent头部信息以模拟浏览器行为。通过调用urlopen函数,我们可以发送请求并获取响应。

接下来,我们使用BeautifulSoup解析HTML文档。通过查找特定的HTML标签和属性,我们可以定位到新闻推荐内容的位置。在这个示例中,我们使用了li标签和class属性来定位,你可以根据实际情况进行调整。

然后,我们使用正则表达式在HTML文档中查找图片的URL和标题。通过findall函数,我们可以获取所有匹配的结果。

最后,我们通过循环遍历获取到的图片URL和标题,使用urlopen函数下载图片,并保存在之前创建的文件夹中。这里我们使用了标题作为图片的文件名,需要注意的是,标题中可能包含一些特殊字符,所以我们使用了re.sub函数将这些特殊字符替换成空字符。

from urllib import request
from bs4 import BeautifulSoup
import os
import re


imgPath = r'F:\news'
if not os.path.isdir(imgPath):
    os.mkdir(imgPath)

url = 'https://www.btime.com/?from=gjl'
head = {}
#写入User Agent信息
head['User-Agent'] = 'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'
# 创建Request对象
req = request.Request(url, headers=head)
# 传入创建好的Request对象
response = request.urlopen(req)
# 读取响应信息并解码
html = response.read().decode('utf-8')
#获取新闻今日推荐内容
contents = BeautifulSoup(html,'html.parser').find_all('li',class_='list-group-item list-group-item-tag')
for content in contents:
    print(content.text)

imgs = re.findall(r'<img src="(.*?)" alt="北京时间" title="(.*?)">', html)

for img in imgs:
    title = re.sub('["]','',img[1])
    res = request.urlopen(img[0])
    filename = os.path.join(imgPath, str(title) + '.jpg')
    with open(filename, 'wb') as f:
        f.write(res.read())

print("下载完成")

   更多历史精彩文章(篇幅过多,不一一列出):

(简历相关)

求职经验分享(1):一份合格的简历应该如何写?-CSDN博客(推荐)

求职经验分享(2):简历如何优化以及如何应对面试【后端篇】-CSDN博客

(项目亮点相关)

大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(1):Redis篇】-CSDN博客

大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(2)】-CSDN博客
(八股文)
大厂面试官问我:Redis处理点赞,如果瞬时涌入大量用户点赞(千万级),应当如何进行处理?【后端八股文一:Redis点赞八股文合集】_java中redis如何实现点赞-CSDN博客

大厂面试官问我:布隆过滤器有不能扩容和删除的缺陷,有没有可以替代的数据结构呢?【后端八股文二:布隆过滤器八股文合集】_布隆过滤器不能扩容-CSDN博客

………

(算法篇)
大厂面试:算法考前必看汇总(全)_大厂面试算法题-CSDN博客

感兴趣的小伙伴可以给个三连~

914cbb12b2c3492aaa31232a11aa9c64.png

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值