Python爬虫--1
Python爬虫小组:255、229、218、219
一.安装软件
软件名称:PyCharm
可以到PyCharm官网下载免费的Community(社区)版本的PyCharm,这个版本虽然不及收费的Professional(专业)版本的PyCharm功能强大,但对于一般应用足够了。(书上抄的)
二.匹配数据
在根目录上右击,新建一个目录,再在此目录里新建一份Python文件


1.发送请求,获取响应
顺序:导入库→地址→发送请求→获取响应
点开Python文件
首先,导入requests库,(呈现灰色状态时是还未引用)

输入requests库下面有红色波浪线,需要去下载
文件中找到设置

找到“+”添加

搜索requests,安装软件

注意urllib3的版本,安装reputes可能会出现urllib3 v2.0 only supports OpenSSL 1.1.1+,这是因为urllb3版本过高,所以我们需要把这个换个版本

换成1.26.18版本,安装

输入需要的网址发送请求→获取响应
- import 导入
- url 网站地址
- response 响应
- requests 请求

我们试运行一下,运行注意换成当前文件运行

发现出现乱码,是编码格式的问题,可以使用UA欺骗

- UA欺骗:指的是User-Agent,这是一个请求头信息,是请求载体的身份标识,可以将此伪装成某个浏览器
- headers是当前发起载体的身份标识
- 字典:{"键":"值"}
寻找此网站的User-Agent,回到浏览器,按F12,打开开发者工具,找网络

刷新一下网站,找到第一个,点标头,划到最底下

复制到刚刚的字典里,注意字典格式,还有指定要响应的关键字

import requests #导入requests
url="https://www.baidu.com/" #网站地址
#UA欺骗
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"}
response=requests.get(url=url,headers=headers) #请求响应此url
print(response.text)
运行试试,爬到了百度网页(Ctrl键+F)

2.解析数据
需要用到正则表达式re程序包,正则表达式是用来匹配与查找字符串
例如我们想获取和这条标签相同的数据,复制这串标签

使用正则法则的re.findall
- re.findall:获取字符串中所有能匹配的字符串,并以列表的形式返回
- 语法格式:re.findall(pattern,string,flags=0)
- 查找字符用正则表达式中的(.*?)
要注意这串字符中存在双引号"",并不是一个单独的字符串,用单引号包裹''

import requests #导入requests
import re #导入re
url="https://www.baidu.com/" #网站地址
#UA欺骗
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"}
response=requests.get(url=url,headers=headers) #请求响应此url
#解析数据
t=re.findall('<span class="text-color">(.*?)</span>',response.text) #查找此标签,获取文本
print(t)
运行找到了标签相同的文本

三.服务器
1.配置路由
顺序:导入模块→定义服务器→设置根路由→返回一个函数的定义→启动程序

创建网站服务器
需要导入 falsk 模块,falsk下面是红色波浪线需要到设置里面下载,然后定义服务器对象
- flask的路由默认只响应GET请求

根目录界面
需要用到函数
- 函数 index() :用于从序列中找出某个值第一个出现时的索引位置
- 函数 def : 关键词开头

启动程序
- app.run()用于启动程序
- host 主机 设置0.0.0.0可以允许所有用户进入
- POST 端口号
- debug开启 不改端口号的情况下可以不用关闭服务器的直接刷新网页更新

import flask
app=flask.Flask(__name__) #定义服务器对象
#配置路由
@app.route("/") #设置根路由
def index():
return "<h1>琉m</h1>" #返回一个函数的定义
app.run(host="0.0.0.0",port="5001",debug="Ture") #启动程序
运行,点击链接进入到网站


2.添加路由
设置/login目录,赋值给s

完整代码
import flask
app=flask.Flask(__name__) #定义服务器对象
#配置路由
@app.route("/") #设置根路由
def index():
return "<h1>琉m</h1>" #返回一个函数的定义
#添加路由
@app.route("/login")
def a():
s="<h1>Menq</h1>"
return s
app.run(host="0.0.0.0",port="5001",debug="Ture") #启动程序
进入网站,在URL加上/login

仅笔记参考

浙公网安备 33010602011771号