Python2.7 基于bs4与requests库的网页图片简单爬取

爬虫入门新手,自学笔记,如果理解有错误请指正。

import requests
from bs4 import BeautifulSoup
import urllib
url = ‘http://www.nipic.com/index.html‘  #图片网站
data = requests.get(url)  #获取网站响应
soup = BeautifulSoup(data.text,‘html.parser‘)  #解析
imgs = soup.find_all(‘img‘)

BeautifulSoup库的find_all函数可以搜索返回的网页源码中参数对应的标签对象。

尝试打印一下获取的img标签内容。

print imgs

我们可以看到一大堆img标签内容,比如 <img src="http://static.nipic.com/images/originalNewTip.png"/>, <img alt="\u4e03\u5915" desc="0" smallsrc="http://icon.nipic.com/BannerPic/20170815/home/20170815172311_1.jpg" src="http://icon.nipic.com/BannerPic/20170815/home/20170815172311.jpg"/>

我们怎么从其中分离出所需要的图片URL地址呢。从BeautifulSoup的库中可以查到,可以通过tag的属性直接获得标签内容。

for img in imgs:
    img_url = img[‘src‘]
    print img_url

可以观察到 我们所需要的图片url主要在src="http://static.nipic.com/images/originalNewTip.png" 这个属性中,所以直接通过img[‘src‘]就可以获得到图片的下载地址。

时间: 2024-10-13 09:30:12

Python2.7 基于bs4与requests库的网页图片简单爬取的相关文章

requests实例4:图片的爬取与保存

requests实例4:图片的爬取与保存 代码框架: 1 # coding=gbk 2 import requests 3 import os 4 url = "http://image.nationalgeographic.com.cn/2017/0211/20170211061910157.jpg" 5 root = "D://pics//" 6 path = root + url.split('/')[-1] 7 try: 8 if not os.path.e

[爬虫] requests库

requests库的7个常用方法 requests.request() 构造一个请求,支撑以下各种方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT requests.patch(

爬虫之requests库

Why requests python的标准库urllib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码. Requests 使用的是 urllib3,因此继承了它的所有特性.Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码.现代.国际化.人性化.. 官方文档:http://docs.python-requests.org/en/m

requests库结合selenium库共同完成web自动化和爬虫工作

我们日常工作中,单纯的HTTP请求,程序员都倾向于使用万能的python Requests库.但大多数场景下,我们的需求页面不是纯静态网页,网页加载过程中伴随有大量的JS文件参与页面的整个渲染过程,且页面的每一步操作可能都能找到异步加载XHR的影子.所以Requests库不是万能的,Requests-Html库就能解决一部分问题,前提是您知道这个过程加载了哪些js文件.小爬的实际工作中,更倾向于Requests+selenium的模式来完成整个网页信息的爬取. 能用Requests库直接请求获得

urllib库的应用及简单爬虫的编写

1.urllib库基础 1.1爬虫的异常处理 常见状态码及含义 301 Moved Permanently:重定向到新的URL,永久性 302 Found:重定向到临时的URL,非永久性 304 Not Modified:请求的资源未更新 400 Bad Request:非法请求 401 Unauthorized:请求未经授权 403 Forbidden:禁止访问 404 Not Found:没有找到对应页面 500 Internal Server Error:服务器内部出现错误 501 Not

基于bs4库的HTML内容查找方法和HTML格式化和编码

bs4库的prettify()方法: 将某一个标签打印:  对于中文的HTML代码,也可以直接打印: 基于bs4库的HTML内容查找方法 <>.find_all(name,attrs,recursive,string,**kwargs):返回一个列表类型,存储查找的结果 name:对标签名称的检索字符串. 其中的(import re)是导入正则表达式库. attrs:对标签属性值的检索字符串,可标注属性检索. recursive:是否对子孙全部检索,默认为Ture. string:<&g

基于bs4库的HTML内容遍历方法

HTML基本格式(树型格式): 遍历方式:下行遍历(根节点到叶节点),上行遍历(叶节点到根节点),平行遍历 标签树的下行遍历: 属性 说明 .contents 子节点的列表,将<tag>所有儿子节点存入列表 .children 子节点的迭代类型,与.contents类似,用于循环遍历儿子节点 .descendants 子孙节点的迭代类型.包含所有子孙节点,用于循环遍历 下行遍历举例; soup.head#获取head节点,返回<head><title>This is a

Python3网络爬虫——三、Requests库的基本使用

一.什么是Requests Requests是用Python语言编写,基于urllib,采用Apache2 Licensed开元协议的HTTP库.它比urllib更加的方便,可以节约我们大量的工作完全满足HTTP测试需求.简单来讲,即Python实现的简单易用的HTTP库. 二.Requests库的安装 如果是初学者,建议使用原生Python3进行安装. 1 >> pip3 install requests 如果有一定的Python基础(会基本语法即可),使用anaconda进行安装更加方便,

python爬虫从入门到放弃(四)之 Requests库的基本使用

什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库如果你看过上篇文章关于urllib库的使用,你会发现,其实urllib还是非常不方便的,而Requests它会比urllib更加方便,可以节约我们大量的工作.(用了requests之后,你基本都不愿意用urllib了)一句话,requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库. 默认安装好python之后,是没有安