会用到的功能的简单介绍

1、from bs4 import BeautifulSoup

#导入库

2、请求头herders

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36','referer':"www.mmjpg.com" }

all_url = 'http://www.mmjpg.com/'

'User-Agent':请求方式

'referer':从哪个链接跳转进来的

3、建立连接

start_html = requests.get(all_url, headers=headers)

all_url:起始的地址,也就是访问的第一个页面

headers:请求头,告诉服务器是谁来了。

requests.get:一个方法能获取all_url的页面内容并且返回内容。

4、解析获取的页面

Soup = BeautifulSoup(start_html.text, 'lxml')

BeautifulSoup:解析页面

lxml:解析器

start_html.text:页面的内容

5、处理获取的页面

all_a = Soup.find('div', class_='pic').find_all('a')[-2]

Soup.find()查找某一个

find_all()查找所有的,返回一个列表

.find('img')['src'] :获取img的src链接属性

class__:获取目标的类名

div/a:类型条件为div/a的

[-2]可以用来去掉最后多匹配的标签,这里表示去掉最后两个a标签

6、获取目标内容

内容

a[i]/get_text():获取第i个a标签里面的内容

7、可能用到的其他功能介绍:

1、文件夹创建与切换

os.makedirs(os.path.join("E:\name", filename))

#在目录E:\name下创建名为filename的文件夹

os.chdir("E:\name\\" + filename)

#切换工作路径到E:\name\filename下

2、文件保存

f = open(name+'.jpg', 'ab')##写入多媒体文件必须要 b 这个参数!

f.write(img.content) ##多媒体文件要是用conctent!

f.close()

案例:爬取妹纸图

import requests

from bs4 import BeautifulSoup

import os

#导入所需要的模块

class mzitu():

def all_url(self, url):

html = self.request(url)##

all_a = BeautifulSoup(html.text, 'lxml').find('div', class_='all').find_all('a')

for a in all_a:

title = a.get_text()

print('------开始保存:', title)

path = str(title).replace("?", '_') ##替换掉带有的?

self.mkdir(path) ##调用mkdir函数创建文件夹!这儿path代表的是标题title

href = a['href']

self.html(href)

def html(self, href): ##获得图片的页面地址

html = self.request(href)

max_span = BeautifulSoup(html.text, 'lxml').find('div', class_='pagenavi').find_all('span')[-2].get_text()

#这个上面有提到

for page in range(1, int(max_span) + 1):

page_url = href + '/' + str(page)

self.img(page_url) ##调用img函数

def img(self, page_url): ##处理图片页面地址获得图片的实际地址

img_html = self.request(page_url)

img_url = BeautifulSoup(img_html.text, 'lxml').find('div', class_='main-image').find('img')['src']

self.save(img_url)

def save(self, img_url): ##保存图片

name = img_url[-9:-4]

img = self.request(img_url)

f = open(name + '.jpg', 'ab')

f.write(img.content)

f.close()

def mkdir(self, path): ##创建文件夹

path = path.strip()

isExists = os.path.exists(os.path.join("E:\mzitu2", path))

if not isExists:

print('建了一个名字叫做', path, '的文件夹!')

os.makedirs(os.path.join("E:\mzitu2", path))

os.chdir(os.path.join("E:\mzitu2", path)) ##切换到目录

return True

else:

print( path, '文件夹已经存在了!')

return False

def request(self, url): ##这个函数获取网页的response 然后返回

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36',

'referer':#伪造一个访问来源 "http://www.mzitu.com/100260/2"

}

content = requests.get(url, headers=headers)

return content

#设置启动函数

def main():

Mzitu = mzitu() ##实例化

Mzitu.all_url('http://www.mzitu.com/all') ##给函数all_url传入参数

main()

python简单爬虫入库_python用BeautifulSoup库简单爬虫实例分析相关推荐

  1. python如何编程日期_python编程开发之日期操作实例分析

    本文实例讲述了python编程开发之日期操作.分享给大家供大家参考,具体如下: 在python中对日期进行操作的库有: import datetime import time 对日期格式化信息,可以参 ...

  2. python查询oracle数据库_python针对Oracle常见查询操作实例分析

    本文实例讲述了python针对Oracle常见查询操作.分享给大家供大家参考,具体如下: 1.子查询(难): 当进行查询的时候,发现需要的数据信息不明确,需要先通过另一个查询得到, 此查询称为子查询: ...

  3. python数据分类聚类案例_Python实现的KMeans聚类算法实例分析

    本文实例讲述了Python实现的KMeans聚类算法.分享给大家供大家参考,具体如下: 菜鸟一枚,编程初学者,最近想使用Python3实现几个简单的机器学习分析方法,记录一下自己的学习过程. 关于KM ...

  4. Python实现主成分分析(PCA)降维:原理及实例分析

    转载文章:Python实现主成分分析(PCA)降维:原理及实例分析 简介 降维是由一些问题带来的: 可以缓解由维度诅咒(高维)带来的问题: 可以用来压缩数据,将损失数据最小化: 可以将高维数据降到低维 ...

  5. python爬虫入门四:BeautifulSoup库(转)

    正则表达式可以从html代码中提取我们想要的数据信息,它比较繁琐复杂,编写的时候效率不高,但我们又最好是能够学会使用正则表达式. 我在网络上发现了一篇关于写得很好的教程,如果需要使用正则表达式的话,参 ...

  6. python爬虫系列—— requests和BeautifulSoup库的基本用法

    本文主要介绍python爬虫的两大利器:requests和BeautifulSoup库的基本用法. 1. 安装requests和BeautifulSoup库 可以通过3种方式安装: easy_inst ...

  7. 1.1python初入网络爬虫-网络连接和BeautifulSoup库的使用

    目录: 一,网络连接 1.网络连接的过程 2.python实现的网络连接功能 3.拓展: 二,BeautifulSoup简介 1.安装BeautifulSoup库 2.运行BeautifulSoup库 ...

  8. python 爬虫代码_python之路(一)_爬虫—爬一下网页代码输出到文件

    在上次公众号中讲到要用python进行开发,所以又拾起来了python.这不,从爬虫进行入门熟悉一下.爬虫是个啥呢?简单说:就是你想高效地从网上获取一些信息,而不用鼠标点点点.官方解释:网络爬虫(又称 ...

  9. Python安装Beautifulsoup4 包(包含Beautifulsoup库)

    首先尝试了 pip install Beautifulsoup    ✘ 安装报错.... 然后上网查到有人用 pip install bs4      ✘ 也没成功 最后用 pip3 install ...

最新文章

  1. LVS原理详解(3种工作方式8种调度算法)--老男孩
  2. PHP:echo、print、print_r() 和 var_dump()
  3. postgrepSQL psql基础操作
  4. 设计模式之美:Type Object(类型对象)
  5. wsl遇到问题The repository ‘http://ppa.launchpad.net/ubuntu-desktop/ubuntu-make/ubuntu focal Release‘解决方法
  6. python linux 优化_Python 代码性能优化技巧
  7. python需要的开发特点_Python编程语言特征
  8. Raki的读paper小记:Code and Named Entity Recognition in StackOverflow
  9. keil uvision4完整破解版下载
  10. java 权限 部分截图
  11. 通过云打码实现验证码识别
  12. 揭开关于激光雷达传感器的常见误区——第二部分
  13. surface装双系统后在移动硬盘上装ubuntu系统
  14. GreenPlum系列-5-角色和权限
  15. 3D打印机内网联机打印(1)orangpiPlus安装Octoprint
  16. 计算机组成原理 | 穿越功耗墙,我们该从哪些方面提升“性能”?
  17. java姓名隐藏中间一个_如何正确的隐藏java语言中的名字
  18. 北京工商专修学校计算机学院院长,北京工商大学计算机学院
  19. 计算机作用对象失败怎么办,虚拟电脑控制台严重错误—获取VirtualBox COM 对象失败的解决办法...
  20. 谷歌胜诉甲骨文,安卓清白还是代码抄袭无罪?

热门文章

  1. CSDN积分获取方法(转载)
  2. rxjs 经典使用场景
  3. Android开发实现简单QQ登录页面
  4. ERNIE3.0多分类任务应用详细教程代码
  5. 商业模式画布的介绍例子
  6. 入门电机系列之5编码器
  7. Java程序员必看的9本基础书籍推荐!
  8. Flask04_模板语法
  9. 我的Android进阶之旅:经典的大牛博客推荐
  10. KBEngine游戏服务器(一)——引擎源代码的获取和编译