人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

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

仅笔记参考

posted @ 2024-03-18 20:15  Menq  阅读(70)  评论(0)    收藏  举报