前言
- 网络爬虫是什么
网络爬虫是一种按照特定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,如今根据用户需求定向抓取相关网页并分析已经成为了主流的爬取策略。
- 网络爬虫能做什么
我们可以爬取自己想看的视频、各种图片,只要是能够通过浏览器访问的数据都可以用它进行爬取。这里并不是说能爬取视频网站上的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)