网页爬虫抓取百度图片(刚刚开始python3简单的爬虫,爬虫一下贴吧的图片吧。)

优采云 发布时间: 2022-02-23 23:21

  网页爬虫抓取百度图片(刚刚开始python3简单的爬虫,爬虫一下贴吧的图片吧。)

  我也是刚开始学python爬虫技术,后来想在网上找一些教程看看。谁知道,一搜,大部分都是用python2写的。新手一般喜欢安装新版本。于是我也写了一个简单的python3爬虫,爬取贴吧的图片。事不宜迟,让我们开始吧。

  首先,让我们谈谈知识。

  一、什么是爬虫?

  采集网页上的数据

  二、学习爬虫的作用是什么?

  做案例研究,做数据分析,分析网页结构......

  三、爬虫环境

  要求:python3x pycharm

  模块:urllib、urllib2、bs4、re

  四、爬虫思路:

  1. 打开网页并获取源代码。

  *由于多人同时爬取某个网站,会造成数据冗余和网站崩溃,所以部分网站被禁止爬取,会返回403 access denied错误信息。----获取不到想要的内容/请求失败/IP容易被封....等

  *解决方案:伪装 - 不要告诉 网站 我是一个脚本,告诉它我是一个浏览器。(添加任意浏览器的头信息,伪装成浏览器),既然是简单的例子,那我们就不搞这些刁钻的操作了。

  2. 获取图片

  *查找功能:只查找第一个目标,查询一次

  *Find_all 功能:查找所有相同的对象。

  这里的解析器可能有问题,我们就不多说了。有问题的学生有一堆解决方案。

  3. 保存图片地址并下载图片

  *一种。使用urllib---urlretrieve下载(保存位置:如果和*.py文件保存在同一个地方,那么只需要文件夹名,如果在别处,那么一定要写绝对路径。)

  算了,废话不多说,既然是简单的例子,那我就直接贴代码了。相信没有多少人不明白。

  有一件事要提:您可以在没有常客的情况下使用 BeautifulSoup;爬虫使用正则、Bs4 和 xpath。只需选择三个中的一个。当然,它也可以组合使用,以及其他类型。

  爬取地址:

  *敏*感*词*的壁纸图片。

  代码显示如下:

  import urllib.request

import re

import os

import urllib

#!/usr/bin/python3

import re

import os

import urllib.request

import urllib

#根据给定的网址来获取网页详细信息,得到的html就是网页的源代码

def getHtml(url):

page = urllib.request.urlopen(url)

html = page.read()

return html.decode('UTF-8')

def getImg(html):

reg = r'src="(.+?\.jpg)" pic_ext'

imgre = re.compile(reg) #转换成一个正则对象

imglist = imgre.findall(html) #表示在整个网页中过滤出所有图片的地址,放在imglist中

print("====图片的地址=====",imglist)

x = 0 #声明一个变量赋值

path = r'H:/python lianxi/zout_pc5/test' #设置保存地址

if not os.path.isdir(path):

os.makedirs(path) # 将图片保存到文件夹,没有则创建

paths = path+'/'

print(paths)

for imgurl in imglist:

urllib.request.urlretrieve(imgurl,'{0}{1}.jpg'.format(paths,x)) #打开imglist,下载图片保存在本地,

x = x + 1

print('图片已开始下载,注意查看文件夹')

return imglist

html = getHtml("http://tieba.baidu.com/p/3840085725") #获取该网址网页的源代码

print(getImg(html)) #从网页源代码中分析并下载保存图片

  最终效果如下:

  

  好了,教程到此结束。

  参考地址:

  (ps:我也是python新手,文章如有错误请多多包涵)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线