前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫

Python爬虫

原创
作者头像
conanma
修改2021-09-07 18:12:17
1.5K0
修改2021-09-07 18:12:17
举报
文章被收录于专栏:正则正则

一、认识爬虫

1.1、什么是爬虫?
代码语言:javascript
复制
 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。
1.2、Python爬虫架构

调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作。 URL管理器:包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式,通过内存、数据库、缓存数据库来实现。 网页下载器:通过传入一个URL地址来下载网页,将网页转换成一个字符串,网页下载器有urllib2(Python官方基础模块)包括需要登录、代理、和cookie,requests(第三方包) 网页解析器:将一个网页字符串进行解析,可以按照我们的要求来提取出我们有用的信息,也可以根据DOM树的解析方式来解析。网页解析器有正则表达式(直观,将网页转成字符串通过模糊匹配的方式来提取有价值的信息,当文档比较复杂的时候,该方法提取数据的时候就会非常的困难)、html.parser(Python自带的)、beautifulsoup(第三方插件,可以使用Python自带的html.parser进行解析,也可以使用lxml进行解析,相对于其他几种来说要强大一些)、lxml(第三方插件,可以解析 xml 和 HTML),html.parser 和 beautifulsoup 以及 lxml 都是以 DOM 树的方式进行解析的。 应用程序:就是从网页中提取的有用数据组成的一个应用。

一、爬虫准备

2.1.1、爬虫类型
  • 小爬:各种库来爬
  • 中爬:框架
  • 大爬:搜索引擎
2.1.2、目的
  • 解决数据来源的问题
  • 做行业分析
  • 完成自动化操作
  • 做搜索引擎
2.1.3、目标类型
  • 新闻/博客/微博 图片,新闻,评论
  • 电影视频 视频,评论
  • 音乐 音频,评论

三、开始爬虫

本章为爬虫入门,所以我们只需要安装几个Python库即可,如下:
代码语言:javascript
复制
  requests | pip install requests
  bs4 | pip install bs4
  lxml | pip install lxml
发送请求

我们每天访问百度,其实就是一次请求,这个requests作用其实就是使用代码模拟我们人类给网站发送了一次请求。 首先我们需要导入requests库 如下:

代码语言:javascript
复制
import requests  #  导入requests库

导入之后我们就可以使用requests库中的方法了,例如我们需要获取我csdn某一篇文章。

代码语言:javascript
复制
r = requests.get('https://www.jianshu.com')

现在,我们有一个名字为:r的Response响应对象,也就是我们访问网站,网站肯定会给我们数据。一些参数如下:

代码语言:javascript
复制
r.status_code # 查看访问状态码 200为ok 是成功的
200
# 然后获取网页源码
r.text # 就是整个网页的html代码

有了html源码一般使用正则匹配数据,但是太麻烦,我们选择一个更简单的可以解析html的python库 就是

代码语言:javascript
复制
from bs4 import BeautifulSoup

来个案例 查找所有关于title标签

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
html = '网页源码'
soup = BeautifulSoup(html, 'lxml')
title = soup.find_all('title')
print(title)
>>> [<title>The Dormouse's story</title>]

其中有个lxml 这个是lxml HTML 解析器 上面已经安装到了 说几个BeautifulSoup比较重要的函数

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
html = '网页源码'
soup = BeautifulSoup(html, 'lxml')
soup.find_all('a') # 获取整个网页所有a标签
soup.find_all('p') # 获取整个网页所有p标签
soup.find('p') # 获取网页第一个p标签
soup.select('#stro p') # 这个是按照css选择器获取元素的 和css几乎相同

「Python爬虫」最细致的讲解Python爬虫之Python爬虫入门(一)先到这里

如果您没有python基础可以去 Python3 基础教程 中学习

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、认识爬虫
  • 一、爬虫准备
  • 三、开始爬虫
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档