使用Beautifulsoup爬取摄图网图片

     本人python小菜鸟一枚(可能连菜鸟也算不上,哈哈!)最近在学爬虫,在这里记录一些随笔,希望和大家一起分享,愿和大家一起成长!

      Beautifulsoup作为一个强大的解析库,它借助网页的结构和属性等特征来解析网页。有了它,我们可以不用再去写一些复杂的正则表达式,只需要简单的几天语句,就可以完成网页中的某个元素的提取,话不多说,下面以实例来进行说明。

      首先我们选择要爬去的网站:http://699pic.com/tupian/meiguihua.html,网站界面如图所示:

   本人想做的就是把该界面的图片爬取下来并保存到本地。首先进入该界面然后鼠标右击,点击Firebug查看元素(我这里浏览器使用的是火狐林浏览器),如图所示。然后把鼠标放到图片上去,可以发现网页的图片都带有class=‘lazy’,那么我可以通过class属性来获取图片的链接,然后进行相关的爬去工作。代码如下:

# -*- coding:utf-8 -*-      
'''引入requests和BeautifulSoup库
from bs4 import BeautifulSoup     
import requests

url  = 'http://699pic.com/tupian/meiguihua.html'   #要爬取的网页地址

response = requests.get(url)          使用requests的get方法获取网页内容
#print(response.text)

soup = BeautifulSoup(response.text,'html.parser')    #使用BeautifulSoup对网页进行解析
#print(soup)
images = soup.find_all(class_ = 'lazy')      #通过find_all方法获取class属性为‘lazy’的图片链接:
#print(images)

这是我们得到的images是个列表,我们真正需要的是图片中箭头所指的链接。然后进行进一步解析操作,代码如下:

for image in images:
    image_url = image['data-original'] 
    title = image['title']    
    # print(image_url)

这是我得到的每个图片的地址,最后一步是通过with open方法把爬取到的图片进行保存了,代码如下:
contents = requests.get(image_url).content
with open(r'D:\python\ '+ title+ ' .jpg','wb') as f:  #保存到D盘python文件夹下,这里需要自己先建下python文件夹呢
    f.write(contents)

这就是保存下来的部分图片了,哈哈,下面把整体代码给大家展示一下:

# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
import requests

url  = 'http://699pic.com/tupian/meiguihua.html'

response = requests.get(url)
#print(response.text)

soup = BeautifulSoup(response.text,'html.parser')
#print(soup)
images = soup.find_all(class_ = 'lazy')
#print(images)

# image_url = []#把获得的图片地址放到image_url中去
# for image in images:
#     #print(image['data-original'])
#     image_url.append(image['data-original'])
#
# #print(image_url)

for image in images:
    image_url = image['data-original']
    title = image['title']
    print(image_url)
    # print(title)
    contents = requests.get(image_url).content
    with open(r'D:\python\ '+ title+ ' .jpg','wb') as f:
        f.write(contents)

 

 

 

 

 

 

 

  

 

 

好的,我们可以通过查看百度首页的源代码,找到对应的标签和类名。 以下是示例代码,可以解析出百度页面中新闻、hao123、地图、贴吧、视频、图片盘、更多的超链接内容: ```python import requests from bs4 import BeautifulSoup # 发送请求获取百度页面的源代码 url = 'https://www.baidu.com/' response = requests.get(url) html = response.text # 使用BeautifulSoup4解析超链接内容 soup = BeautifulSoup(html, 'html.parser') # 新闻 news = soup.find('div', {'id': 's-news-panel'}) news_links = news.find_all('a') print('新闻:') for link in news_links: print(link.get('href'), link.text) # hao123 hao123 = soup.find('div', {'id': 's-hao123'}) hao123_links = hao123.find_all('a') print('hao123:') for link in hao123_links: print(link.get('href'), link.text) # 地图 map = soup.find('div', {'id': 's-mancard'}) map_links = map.find_all('a') print('地图:') for link in map_links: print(link.get('href'), link.text) # 贴吧 tieba = soup.find('div', {'class': 'sfc-tab'}) tieba_links = tieba.find_all('a') print('贴吧:') for link in tieba_links: print(link.get('href'), link.text) # 视频 video = soup.find('div', {'id': 's-video'}) video_links = video.find_all('a') print('视频:') for link in video_links: print(link.get('href'), link.text) # 图片 image = soup.find('div', {'id': 's-image'}) image_links = image.find_all('a') print('图片:') for link in image_links: print(link.get('href'), link.text) # 盘 pan = soup.find('div', {'id': 's-pan'}) pan_links = pan.find_all('a') print('盘:') for link in pan_links: print(link.get('href'), link.text) # 更多 more = soup.find('div', {'id': 's-more-link'}) more_links = more.find_all('a') print('更多:') for link in more_links: print(link.get('href'), link.text) ``` 这段代码会输出百度页面中对应的超链接的URL和文本内容。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值