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】728. Self Dividing Numbers 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 循环 filter函数 数字迭代 日期 题目地址:h ...
- 【LeetCode】905. Sort Array By Parity 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述: 题目大意 解题方法 自定义sorted函数的cmp 日期 题目地址:h ...
- 【LeetCode】166. Fraction to Recurring Decimal 解题报告(Python)
[LeetCode]166. Fraction to Recurring Decimal 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingz ...
- 【剑指Offer】矩阵覆盖 解题报告(Python)
[剑指Offer]矩阵覆盖 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描 ...
- LeetCode118. Pascal's Triangle 杨辉三角
题目 给定行数,生成对应的杨辉三角 思考 同一行是对称的,最大的下标为(行数+1)/2;1,1,2,3,6;下标从0开始,则对应分别为0.0.1.1.2.2 对于第偶数行,个数也是偶数,对于奇数行,个 ...
- Grids
Grids Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Subm ...
- Java EE数据持久化框架 • 【第3章 MyBatis高级映射】
全部章节 >>>> 本章目录 3.1 一对一映射 3.1.1 自动化一对一映射 3.1.2 标签配置一对一映射 3.1.3 标签配置一对一映射 3.1.4 实践练习 3.2 ...
- XML解析和创建的JAXB方式
1.说明 JAXB是Java Architecture for XML Binding, 即用于XML绑定的Java体系结构, JAXB作为JDK的一部分, 能便捷地将Java对象与XML进行相互转换 ...
- Drupal 8 环境搭建部署
运行环境安装 系统:Ubuntu Server 16.04 (ubuntu-16.04.4-server-amd64.iso) Web服务器:Apache / 2.4.18 数据库:Mysql / ...
- Selenium_获取元素文本、属性值、尺寸(8)
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get(" ...