用Python 3 实现简单的菜鸟爬虫 爬取网页图片

版权声明:版权: 319877235@qq.com Wechat: IT_zwf https://blog.csdn.net/qq_33483795/article/details/80697197

简单的爬虫(定向爬图片)

这次定向爬取的网站是  

http://616pic.com/png/?sem=7&sem_kid=27&ks=4941

上面的图片
爬虫码如下

# _*_coding:utf-8_*_
from bs4 import BeautifulSoup
import urllib.request
import requests

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)\
 Chrome/67.0.3396.62 Safari/537.36'}
url = r"http://616pic.com/png/?sem=7&sem_kid=27&ks=4941"
req = urllib.request.Request(url, headers=header)
response = urllib.request.urlopen(req)
soup = BeautifulSoup(response, 'html.parser')
result = soup.findAll(attrs={'class': 'lazy'})
for i in result:
    i = str(i)
    i = i.split('nal=\"', 1)[1].split('\"/>')[0]
    print(i, type(i), '\n')
    res = requests.get(i)
    j = i.split('img', 1)[1].split('/', 4)[4].split('.jpg', 1)[0]
    print(j)
    new_pic = open('./%s.jpg' % j, 'wb')
    new_pic.write(res.content)
    new_pic.close()
print('finished')

怎么写入到指定的文件 , 怎么更简洁爬虫  , 关注我!!!  持续更新!!!

先导入几个库文件, 具体就上面三个

from bs4 import BeautifulSoup
import urllib.request
import requests

假装是浏览器访问他们网站

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)\
 Chrome/67.0.3396.62 Safari/537.36'}
url = r"http://616pic.com/png/?sem=7&sem_kid=27&ks=4941"

header是浏览器信息, 怎么获取浏览器信息呢? 具体如下

打开一个网页  按F12



点network , 其他浏览器点  网络  那个选项  再按  F5 刷新


点击上方那个 www.baidu.com , 点击后最后面的就是浏览器的属性


req = urllib.request.Request(url, headers=header)
response = urllib.request.urlopen(req)
soup = BeautifulSoup(response, 'html.parser')
result = soup.findAll(attrs={'class': 'lazy'})

req 是请求, 用urllib.request.Request(网址, 浏览器信息) , 把信息给req

response 是请求访问后得到服务器的响应 , urlopen 是裹挟 req的数据去访问服务器

soup是BeatifulSoup(response, 'html.paeser') 创建的数对象, 里面包括了网页的全部信息

在soup里找到所有class属性叫lazy的标签

for i in result:
    i = str(i)
    i = i.split('nal=\"', 1)[1].split('\"/>')[0]
    print(i, type(i), '\n')
    res = requests.get(i)
    j = i.split('img', 1)[1].split('/', 4)[4].split('.jpg', 1)[0]
    print(j)
    new_pic = open('./%s.jpg' % j, 'wb')
    new_pic.write(res.content)
    new_pic.close()
print('finished')

拿到标签以后去剪切标签 , 目的是获得图片地址 ,

用requests.get(图片地址)  获得图片地址i , j是图片的命名

新建一个图片  open(...)  wb是二进制写入读取方式

用requests得到的content是图片 , 视频这些信息 , text是文字信息 , write(图片信息)

close()是图片创建完关闭创建的图片

最后全部图片趴下来完成!!!




阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页