【Python】爬取指定网站中的文字、图片到本地

【Python】爬取指定网站中的文字、图片到本地


前言

- 网络爬虫是什么

       网络爬虫是一种按照特定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,如今根据用户需求定向抓取相关网页并分析已经成为了主流的爬取策略。

- 网络爬虫能做什么

       我们可以爬取自己想看的视频、各种图片,只要是能够通过浏览器访问的数据都可以用它进行爬取。这里并不是说能爬取视频网站上的VIP才能看的视频,而是本身我们就能通过浏览器看,除非开VIP,否则还是没法访问到那些特定视频。

- 网络爬虫本质

       模拟浏览器打开网页,获取网页中我们想要的特定数据。
原理:因为每个网页其实就是一个HTML,里面有各种超链接,我们可以顺着超链接进而访问下一个网页。


一、爬取文字代码

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup

if __name__ == '__main__':
        # target为获取的需要爬取内容的网址
        target = 'target为获取的需要爬取内容的网址'
        # 向服务器请求数据,服务器返回的结果是个Response对象
        req = requests.get(url=target)
        # 设置Response对象的编码
        req.encoding = 'GBK'
        req.encoding = 'utf-8'
        # 获取网页的源代码
        html = req.text
        # Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器。
        bf = BeautifulSoup(html,'html.parser')
        # find_all查找所有类名为"box mt15"的div盒子,这里的div以及class可根据自己需求修改
        texts = bf.find_all('div',class_='box mt15')
        # 输出爬取的内容
        print(texts[0].text)

二、爬取图片代码

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import requests
import os
from bs4 import BeautifulSoup
from urllib.request import urlretrieve
# 这里获取需要爬取图片的网址
url = '这里获取需要爬取图片的网址'
# 使用第三方库在本地创建一个名为img_0的文件夹
os.makedirs('./img_0/', exist_ok=True)
# 获取网页的源代码
html = requests.get(url).text
# Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器。
soup = BeautifulSoup(html, 'html.parser')
# 查找所有img文件
img_url = soup.find_all('img')
#计数使用
count = 0
for url in img_url:
    ul = url['src']
    #字符串分割
    uljpg = ul.split('/')[-1]
    #获取分割后的字符串有 jpg 或者 upload 计数加一
    if uljpg[-3:] == 'jpg' and 'upload' in ul:
        count = count + 1
        print("第%d张图片" % count)
        img = 'https://www.hdu.edu.cn' + ul
        print(img)
        # 将下载后的图片保存到上面已创建的本地文件夹中
        urlretrieve(img, './img_0/%s' % ul.split('/')[-1])
print("共%d张图片" % count)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慢热型网友.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值