Python爬虫基础入门实例

2020-12-14 14:17:13 浏览数 (3292)

       本文涉及的主要知识点如下:

  • WEB 是如何交互的;
  • requests 库的 get、post 函数的应用;
  • response 对象的相关函数及其属性。

 环境:Python3.6 + Pycharm

 库:requests

       小编在本文中代码都已给出了详细注释,并且可直接运行。

       首先,屏幕前的小伙伴们需要先安装 requests 库,安装之前需先安装好 Python 环境,如未安装,小编在这给小伙伴们提供最新的 Python 编译器安装教程:Python 最新 3.9.0 编译器安装教程

       安装好 Python 环境后,windows 用户打开 cmd 命令输入以下命令即可(其余系统安装大致相同)。

 pip install requests

       Linux 用户:

 sudo pip install requests

       接下来就是实例讲解啦,小伙伴们多多动手操练呐!


1、爬取百度首页页面,并获取页面信息

实例

# 爬取百度页面 

import requests #导入requests爬虫库

resp = requests.get('http://www.baidu.com') #生成一个response对象

resp.encoding = 'utf-8' #设置编码格式为 utf-8

print(resp.status_code) #打印状态码

print(resp.text) #输出爬取的信息


2、requests 库 get 方法实例

       在此之前先给大家介绍一个网址:httpbin.org,这个网站能测试 HTTP 请求和响应的各种信息,比如 cookie、ip、headers 和登录验证等,且支持 GET、POST 等多种方法,对 web 开发和测试很有帮助。它用 Python + Flask 编写,是一个开源项目。

官方网站:http://httpbin.org/

开源地址:https://github.com/Runscope/httpbin

实例

# get方法实例

import requests #导入requests爬虫库

resp5、爬取网页图片,并保存到本地。5、爬取网页图片,并保存到本地。 = requests.get("http://httpbin.org/get")  #get方法

print( resp.status_code ) #打印状态码

print( resp.text ) #输出爬取的信息


3、requests 库 post 方法实例

实例

# post方法实例

import requests #导入requests爬虫库

resp = requests.post("http://httpbin.org/post")  #post方法

print( resp.status_code ) #打印状态码

print( resp.text ) #输出爬取的信息


4、requests库 put 方法实例

实例

# put方法实例

import requests #导入requests爬虫库

resp = requests.put("http://httpbin.org/put")  # put方法

print( resp.status_code ) #打印状态码

print( resp.text ) #输出爬取的信息


5、requests 库 get 方法传参

想要使用 get 方法传递参数,有两种方法可行:

  1. 在 get 方法之后加上要传递的参数用“=”号链接并用“&”符号隔开;
  2. 使用 params 字典传递多个参数。实例如下:

实例

# get传参方法实例1

import requests #导入requests爬虫库

resp = requests.get("http://httpbin.org/get?name=w3cschool&age=100")  # get传参

print( resp.status_code ) #打印状态码

print( resp.text ) #输出爬取的信息

实例

# get传参方法实例2

import requests #导入requests爬虫库

data = {

"name":"w3cschool",

"age":100

} #使用字典存储传递参数

resp = requests.get( "http://httpbin.org/get" , params=data )  # get传参

print( resp.status_code ) #打印状态码

print( resp.text ) #输出爬取的信息


6、requests 库 post 方法传参

       使用 post 方法传递参数和使用 get 方法传递参数的方法二是类似的。实例如下:

实例

# post传参方法实例

import requests #导入requests爬虫库

data = {

"name":"w3cschool",

"age":100

} #使用字典存储传递参数

resp = requests.post( "http://httpbin.org/post" , params=data )  # post传参

print( resp.status_code ) #打印状态码

print( resp.text ) #输出爬取的信息


7、如何绕过各大网站的反爬虫措施,以猫眼票房为例:

实例

import requests  #导入requests爬虫库

url = 'http://piaofang.maoyan.com/dashboard' #猫眼票房网址地址

headers = {

 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'

} #设置头部信息,伪装浏览器

resp = requests.get(url, headers=headers) #

print(resp.status_code) #打印状态码

print(resp.text) #网页信息


8、爬取网页图片,并保存到本地。

       先在E盘建立一个爬虫目录,才能够保存信息,小伙伴们可自行选择目录保存,在代码中更改相应目录代码即可。

实例

import requests #导入requests爬虫库

headers = {

 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'

} #设置头部信息,伪装浏览器

resp = requests.get('http://7n.w3cschool.cn/statics/img/logo/indexlogo@2x.png', headers = headers)  #get方法的到图片响应

file = open("E:\\爬虫\\test.png","wb") #打开一个文件,wb表示以二进制格式打开一个文件只用于写入

file.write(resp.content) #写入文件

file.close() #关闭文件操作

      学以致用,希望屏幕前的小伙伴们能够多多联系,结合实际多加操作。推荐阅读:Python 静态爬虫Python Scrapy网络爬虫