python网络爬虫-python基础(三)
python安装
Anaconda的python科学计算环境,只需要想普通软件一样安装就可以把python的环境变量、解释器、开发环境都安装到计算机中
除此之外anaconda还提供众多的科学计算的包,如numpy、scipy、pandas、和matplotlib等,以及机器学习、生物医学和天体物理学计算等众多的包/模块,如scikilt-learn/biopython等。
使用pip安装第三方库
pip是python安装各种第三方库(package)的工具。库可以理解成别人写好的代码组合。安装好某一个库之后就可以直接调用其中的功能,我们就不用自己再重新写了
使用编译器pycharm编程
有个教育版不用激活个人练习的话可以用这个版本
python使用入门
基本命令
python是一种非常简单的语言,最简单的就是print,使用print可以打印出一系列的结果
python严格要求缩进
如果要注释某行代码前面加上‘#’
数据类型
- 字符串:一般用来存储类似句子的数据,放到单引号或双引号中,需要连接字符串用加号加起来就行
str0 = '111'
str1 = "222"
str2 = str + " " + str1
print(str2) - 数字:常用的两种数字类型:整型(int)和浮点数(float)。两种数据类型要互换就用括号括起来前面加上想要转换的数据类型就行
int1 = 1
float1 = 1.1
strans_int = int(float1)
print(strans_int) - 列表:列表可以包含任意种类的数据来下和任意数量,创建也非常容易,把不同的变量放入方括号中用逗号隔开
price_li = [399, 4369, 539, 288, 109, 749, 235, 190, 99, 1000]
获取列表第一个元素price_li[0]就可以拿到了,中括号里面放索引值就好了。
修改列表第一个元素的值price_li[0] = 111 - 字典:又叫键值对,每一个值都对应一个键(key),key必须是唯一的,但值不用也可以使用任意类型
info_dict = {'name': '张三', 'age': 21}
print(info_dict) # 把整个字典中的数据都输出出来
print(info_dict['name']) # 把整个字典中key叫‘name’的值给输出出来
循环提取出字典中全部的key和value
for key, value in info_dict.items():
print(key, value)
4.条件语句和循环语句
条件语句可以使符合条件的时候执行某部分代码,条件为布尔值,也就是只有true和false两个值,条件不成立执行else后面的语句
if jx != 'Y':
print(jx)
else :
print(jx)
如果需要判断有多种条件,就需要用到elif
if select == '1':
list.append(cardtool.insertcard())
print('名片新增成功!')
elif select == '2':
cardtool.allcard(list)
elif select == '3':
cardtool.querycard(list)
else:
print('谢谢使用,系统已退出!')
5.循环语句可以让我们执行一个代码段多次,循环分为for和while
for可以在给定的顺序下重复执行
for key, value in info_dict.items():
print(key, value)
while循环能不断重复执行只需要满足一定条件
while True:
print(*)
6.函数:在代码少的时候可以按照逻辑写完就能够很好的运行。但是如果代码变得庞大复杂起来,就需要自己定义一些函数把代码分给成一个个方块,使代码易读,可以重复使用,并容易调整顺序
一个函数包括输入参数和输出参数
def function(x):
y=x+1
return y
#调用函数
num=10
sum = function(num)
7.面向对象编程
介绍面向对象之前先说一下面向过程,面向过程编程的意思是根据业务逻辑从上到下写代码,这个最容易被初学者接受。需要那段代码写下来就好了。
随着时间的推移,在编程的方式上又发展出了函数式编程,把某些功能封装到函数中,需要用的时候可以直接调用,不用重复写,节省了编码的时间。
随着时间的推移,又出现了面向对象编程。面向对象编程是把函数进行分类和分装后放入对象中,是得开发更快更强。
class Person:
def init(self, name, age): # 类的构造方法
self.name = name
self.age = age
def datail(self): # 通过self调用被封装的内容
print(self.name)
print(self.age)
obj1 = Person('张三', 19)
obj1.datail()
如果各个函数之间独立且无公共数据,就选用函数式编程;如果各个函数之间有一点更多关联性,那么就选用面向对象编程比较好
1.封装:封装分两步:第一步为封装内容,第二部为调用被封装的内容
点击查看代码
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def datail(self): # 通过self调用被封装的内容
print(self.name)
print(self.age)
# 调用
obj1 = Person('张三', 19)
obj1.datail()
2.继承是以普通的类为基础建立专门的类对象。子继承了父的某些特性
点击查看代码
class Animal:
def eat(self):
print("%s 吃" % self.name)
def drink(self):
print("%s 喝" % self.name)
def shit(self):
print("%s 拉" % self.name)
def pee(self):
print("%s 撒" % self.name)
class Cat(Animal):
def __init__(self, name):
self.name = name
def cry(self):
print("喵喵叫")
class Dog(Animal):
def __init__(self, name):
self.name = name
def cry(self):
print("汪汪叫")
# 编写一个简单的爬虫
点击查看代码
import requests # 最简单易用的HTTP库
from bs4 import BeautifulSoup # lxml解析网页
# 获取页面
link = "http://www.santostang.com/"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
r = requests.get(link, headers=headers)
print(r.text)
# 抓取数据
soup = BeautifulSoup(r.text, "html.parser")
title = soup.find("h1", class_="post-title").a.text.strip()
print(title)
# 存储数据
with open('title.txt', "a+") as f:
f.write(title)
f.close()
最新文章
- python 单例模式
- mysql delete 使用别名 语法
- iOS初步开发
- vsftpd.conf 怎么保存
- AIDL示例
- 串口 COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑
- 基于jQuery上下切换的焦点图—带缩略图悬浮
- Java算法试题--猜字母/杀人游戏
- javascript关闭浏览器窗口
- MySQL 授权详解
- Java IO复习(一)
- TableView基本使用
- 10分钟学会Linux
- Jenkins 学习笔记(三):我们的JAVA 项目是这么发布的
- LeetCode解题录-1~50
- poj2635
- Windows 局域网ping获取设备IP
- LOJ 2483: 洛谷 P4655: 「CEOI2017」Building Bridges
- Hive之变量和属性
- C#程序如何以管理员身份运行
热门文章
- 『学了就忘』vim编辑器基础 — 95、命令模式中的相关命令
- FreeSql.Provider.SqliteCore如何加密
- [OpenCV]基于特征匹配的实时平面目标检测算法
- [opencv]Rect集合象限法分类聚合 函数
- Java高级程序设计笔记 • 【第4章 网络编程】
- 分布式链路追踪自从用了SkyWalking,睡得真香!
- SpringBoot 与 SpringCloud 的版本对应详细信息
- CF612E Square Root of Permutation
- HiSql 实现case语法操作 新一代无实体ORM框架
- mybatis-plus中查询出的字段为空