项目结构
在命令行中显示Django项目结构,可以使用tree
命令(Windows)或tree
命令(Linux/Mac)
-
打开命令行(Windows)或终端(Linux/Mac)。
-
使用
cd
命令切换到Django项目的根目录。例如:cd /path/to/your/django/project
-
在命令行中输入以下命令,然后按回车键:
-
Windows:
tree /f
-
Linux/Mac:
tree -a
这将显示Django项目的目录结构,包括文件和子目录。
-
-
如果你想将项目结构保存到文本文件中,可以将输出重定向到一个文件。例如:
-
Windows:
tree /f > project_structure.txt
-
Linux/Mac:
tree -a > project_structure.txt
这将把项目结构输出到名为
project_structure.txt
的文件中。你可以使用文本编辑器查看该文件。 -
输出数组与字典
数组:
爬虫基础知识
venv:记录虚拟环境
网络爬虫,其实叫作网络数据采集更容易理解。
就是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。
归纳为四大步:
1.根据url获取HTML数据
2.解析HTML,获取目标信息
3.存储数据
4.重复第一步
py的类:类是模板,而实例则是根据类创建的对象
创建类时,类方法中的self是什么?
self 代表类的实例,是通过类创建的实例
(注意,在定义类时这个实例我们还没有创建,它表示的我们使用类时创建的那个实例)
在Python中,只要是带着@的,基本上就是装饰器,装饰器的本质是扩展原本函数功能的一种函数
app.route('URL')就是在Flask框架中非常重要的一个装饰器,它的作用是在程序运行时,装饰一个视图函数,用给定的URL规则和选项注册它,
这里不理解也无所谓,能用即可
正则表达式
pycharm使用:通过引用re模块即可。
常用正则表达:
obj = re.compile(r".*?") #惰性匹配
# re.findall拿到所有数据
result = re.findall(r"填写pattern","填写string")
print(result)
# re.search拿到第一个数据
result = re.search(r"\d+","肌肤的司法100,滑稽的是8那时的")
print(result.group())
# re.finditer把所有结果放到迭代器
result = re.finditer(r"\d+","肌肤的司法100,滑稽的是8那时的")
for item in result:
print(item.group())
#result和result.group()为了应对不同的返回结果,如果返回结果包含数据,那么通过result.group()可以得到结果里的数据
正则表达预加载:
obj = re.compile(r"pattern")
result = obj.search("填入数据")
result = obj.findall("填入数据")
result = obj.finditer("填入数据")
正则表达式分组:
obj = re.compile(r'<div class="card-body"><a href="(?P<url>.*?)">(?P<company>.*?)</a></div>')
result = obj.finditer(string)
for item in result:
print(item.groupdict())
(?P<组名>pattern),其中(?P<组名> )表示给正则表达式分组。
小案例:豆瓣TOP250
import requests
url = "https://movie.douban.com/top250"
head = {'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'}
response = requests.get(url,headers=head)
response.encoding = 'utf-8'
print(response.text)
obj = re.compile(r'<div class="item">(.+?)<span class="title">')
result = obj.finditer(response)
XPath
安装:pip install lxml
常见操作:
from lxml import etree
# 打开文件
file = open("test.html",mode="r",encoding="utf-8")
source = file.read()
# xpath使用
element = etree.HTML(source)
# 操作:找标签
result = element.xpath("/html/body")
# 文本:text()
result = element.xpath("/html/body/text()")
# 通配符:*,表示任意位置
result = element.xpath("/html/body/*/a/@href")
# 找属性,类,使用:@属性
result = element.xpath("/html/body/div/a/@href")
# 任意位置://
result = element.xpath("//a/@href")
# 属性的限定:[@class='title']
result = element.xpath("/html/body/div/a/span[@class='title']/text()")
#输出结果
print(result)