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

Python爬虫入门

作者头像
北山啦
发布2022-11-27 11:23:05
4600
发布2022-11-27 11:23:05
举报
文章被收录于专栏:北山啦的博客

Python爬虫入门之 初识爬虫

简单介绍Python爬虫相关的知识

文章目录

在这里插入图片描述
在这里插入图片描述

推荐阅读:

  1. 使用xpath爬取数据
  2. jupyter notebook使用
  3. BeautifulSoup爬取豆瓣电影Top250
  4. 一篇文章带你掌握requests模块
  5. Python网络爬虫基础–BeautifulSoup

1. 什么是爬虫?

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

2. requests的基本使用

Python里边请求网页,一般用到的是requests模块

安装模块

pip install requests

方法

描述

requests.get()

请求指定的页面信息,并返回实体主体

requests.post()

向指定资源提交数据进行处理请求(例如提交表单)

常用方法:

  • url :需要请求的链接
  • headers : 请求头(很重要!!!)

响应对象:

方法

描述

用处

text

返回响应体文本信息

文本内容

content

返回二进制响应内容

图片、音乐、视频等

status_code

查看响应码

查看请求成功与否

json()

返回json内容,将返回内容中的数据以键值对的方式提取出来

json格式的数据

响应码:

状态码

描述

1**

指示信息–表示请求已接收,继续处理

2**

成功–表示请求已被成功接收、理解、接受

3**

重定向–信息不完整需要进一步补充

4**

客户端错误–请求有语法错误或请求无法实现

5**

服务器端错误–服务器未能实现合法的请求

2.1 你的第一个爬虫程序

代码语言:javascript
复制
import requests

url = 'https://www.baidu.com'
# 请求百度
resp = requests.get(url)

print(resp.text)		# 查看文本
print(resp.content)		# 查看二进制的响应内容
print(resp.status_code)	# 查看响应码

2.2 headers请求头的重要性

这里咱们使用豆瓣电影Top250来示例:

代码语言:javascript
复制
import requests

url = 'https://movie.douban.com/top250'
resp = requests.get(url)
print(resp.status_code)	# 418  

这里状态码返回为418,很明显是请求不成功该网址的,下面再说如何处理

状态码总结


在这里插入图片描述
在这里插入图片描述

所以这个时候应该给我们的requests请求添加请求头,即将自己伪装成浏览器去进行访问。 如果想为请求添加请求头,只要简单地传递一个 dictheaders 参数就可以了。

3. 案例:豆瓣电影Top250数据请求

豆瓣电影Top250

在这里插入图片描述
在这里插入图片描述

代码语言:javascript
复制
import requests

url = 'https://movie.douban.com/top250?start=0&filter='
headers = {
    'user-agent':'Mozilla/5.0'
}

resp = requests.get(url,headers=headers)
print(resp.text)

4. 网页解析

这里介绍几个从数据中提取信息的方法:

方法

描述

BeautifulSoup

一个可以从HTML或XML文件中提取数据的Python库

XPath

在XML文档中查找信息的语言

正则表达式(re)

一个特殊的字符序列,它能方便的检查一个字符串是否与某种模式匹配。

这里只使用Xpath来做展示,其他的有兴趣可以自己动手学习哦!!

安装模块:

代码语言:javascript
复制
pip install lxml
pip install parsel

lxml模块:

代码语言:javascript
复制
from lxml import etree

parse_html = etree.HTML(html)

Selector模块:

代码语言:javascript
复制
from parsel import Selector

sel = Selector(html)
# xpath解析
sel.xpath('//*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[2]/div/span[4]/text()').extract_first()	# 第一个
sel.xpath().extract()		# 全部

# css解析
sel.css()
代码语言:javascript
复制
from lxml import etree

parse_html = etree.HTML(resp.text)

# 电影名称
parse_html.xpath('//*[@id="content"]/div/div[1]/ol/li/div/div[2]/div[1]/a/span[1]/text()')
# 导演、演员
parse_html.xpath('//*[@id="content"]/div/div[1]/ol/li/div/div[2]/div[2]/p[1]/text()[1]')
# 上映日期
parse_html.xpath('//*[@id="content"]/div/div[1]/ol/li/div/div[2]/div[2]/p[1]/text()[2]')
# 评分
parse_html.xpath('//*[@id="content"]/div/div[1]/ol/li/div/div[2]/div[2]/div/span[2]/text()')
# 评论人数
parse_html.xpath('//*[@id="content"]/div/div[1]/ol/li/div/div[2]/div[2]/div/span[4]/text()')
# 评语
parse_html.xpath('//*[@id="content"]/div/div[1]/ol/li/div/div[2]/div[2]/p[2]/span/text()')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python爬虫入门之 初识爬虫
    • 文章目录
      • 1. 什么是爬虫?
        • 2. requests的基本使用
          • 2.1 你的第一个爬虫程序
          • 2.2 headers请求头的重要性
        • 3. 案例:豆瓣电影Top250数据请求
          • 4. 网页解析
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档