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网络爬虫-python基础(三)的更多相关文章
- 03.Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- Python爬虫《Python网络爬虫相关基础概念》
引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从 ...
- 03,Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从就业上. 我们都知道,当前我们所处的时代 ...
- 《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据
什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...
- Python网络爬虫相关基础概念
什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...
- python网络爬虫笔记(三)
一.切片和迭代 1.列表生成式 2.生成器的generate,但是generate保存的是算法,所以可以迭代计算,没有必要,每次调用generate 二.iteration 循环 1.凡是作用于for ...
- Python网络爬虫与信息提取笔记
直接复制粘贴笔记发现有问题 文档下载地址//download.csdn.net/download/hide_on_rush/12266493 掌握定向网络数据爬取和网页解析的基本能力常用的 Pytho ...
随机推荐
- 【LeetCode】497. Random Point in Non-overlapping Rectangles 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/random-p ...
- 【LeetCode】840. Magic Squares In Grid 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 利用河图规律 暴力解法 日期 题目地址:https: ...
- Spring Boot + MyBatis + MySQL 实现读写分离
读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做. 读写分离有两种实现方式: 第一种是依靠中间件(比如:MyCat ...
- 【环境搭建】安装pyQt5 在pycharm报This application failed to start because no Qt platform plugin could be initialized的问题
报错:This application failed to start because no Qt platform plugin could be initialized 解决办法: http:// ...
- Spring Boot实战三:集成RabbitMQ,实现消息确认
Spring Boot集成RabbitMQ相比于Spring集成RabbitMQ简单很多,有兴趣了解Spring集成RabbitMQ的同学可以看我之前的<RabbitMQ学习笔记>系列的博 ...
- 基于Spring MVC + Spring + MyBatis的【外包人力资源管理系统】
资源下载:https://download.csdn.net/download/weixin_44893902/45600390 练习点设计:模糊查询.删除.新增 一.语言和环境 实现语言:JAVA语 ...
- 《MySQL数据操作与查询》- 维护学生信息、老师信息和成绩信息 支持按多种条件组合查询学生信息和成绩信息
综合项目需求 一.系统整体功能 系统需支持以下功能: 维护学生信息.老师信息和成绩信息 支持按多种条件组合查询学生信息和成绩信息 学生 Student(id,班级id,学号,姓名,性别,电话,地址,出 ...
- Mysql 8.0版本以上和8.0以下jar包版本 需要注意的 URL连接参数useSSL、serverTimezone 相关问题
在语法上的需要注意的: MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL static final String JDBC_DRIVER = "com.mysql.jdbc ...
- Java中List与数组互相转换
1.说明 在Java中,经常遇到需要List与数组互相转换的场景. List转换成数组,可以使用List的toArray()或者toArray(T[] a)方法. 数组转换成List,可以使用Arra ...
- 使用.NET 6开发TodoList应用(19)——处理OPTION和HEAD请求
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在HTTP请求中,我们还剩下两类不常使用的请求没有讲到,本文就来实现以下关于OPTIONS和HEAD请求.OPTIONS请求用 ...