1、Anaconda介绍

Anaconda 是专门为了方便使用 Python 进行数据科学研究而建立的一组软件包,涵盖了数据科学领域常见的 Python 库,并且自带了专门用来解决软件环境依赖问题的 conda 包管理系统。

anaconda主要是提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。pip也是python的一个包管理工具,可以和anaconda一样来管理包和下载第三方包。anaconda主要用于创建虚拟环境和包管理。

Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。

conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。

Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。其实还有Miniconda,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。

conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。

2、Jupyter

Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。

简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。

jupyter和pycharm区别是什么?

1、Python是一种广泛使用的高级的、通用的、解释的、动态编程语言;Python是一种相当古老且流行的语言,是开源的,常被应用于网站开发、科学统计计算、软件开发等甚至更多,Jupyter项目开始于2014年,在所有编程语言中,是一种用于支撑科学计算和交互式计算科学的衍生式IPython。

2、Pycharm它能对类、对象、关键字的补全和自动缩进,能格式化代码,定制代码片段和格式;jupyter允许用户创建和共享文件,文件中可以包括公式、图像以及重要的代码。

3、jupyter拥有交互式组件,可以编程输出视频、图像、LaTaX;不仅如此,交互式组件能够用来实时可视化和操作数据;Pycharm支持错误的突出显示,同时也包含PEP-8,能帮助写出整洁的代码,易于支撑其他语言。

3、Spyder

Spyder (前身是 Pydee) 是一个强大的交互式 Python 语言开发环境,提供高级的代码编辑、交互测试、调试等特性,支持包括 Windows、Linux 和 OS X 系统。
总结:spyder是python的一个集成开发环境(IDE)

爬虫

通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程

爬虫分类:

1.通用爬虫
抓取系统重要组成部分,抓取的是一整张页面数据
2.聚焦爬虫
是建立在通用爬虫的基础上,抓取的是页面中特定的局部内容
3.增量式爬虫
检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据
4.robots.txt协议
规定了网站中哪些数据可以被爬虫爬取,哪些数据不可以被爬取。使用时候在网址后+robots.txt即可
5.http协议
服务器端和客户端进行交互时要遵守的协议。
**常用的请求头信息:**
- User-Agent:请求载体的身份标识
- Connection:请求完毕后,是断开连接还是保持连接
**常用的响应头信息:**
- Content-Type:服务器响应客户端的数据类型

https协议

安全的超文本传输协议
加密方式:
- 对称秘钥加密客户端在传输数据的时候将数据进行加密,并且之后将数据和解密方式一并发送给服务器端
- 非对称秘钥加密服务器端制定客户端加密方式,之后发送给客户端,客户端按照这种加密方式对数据进行加密,加密完成之后发送给服务器端,服务器端对其进行解密引入公钥(服务器端发送给客户端的加密方式) 私钥(服务器端自己保留的解密方式)的概念,弥补了对称加密方式中解密方式被泄露的危险
- 证书秘钥加密在非对称加密方式的基础上,对公钥进行证书认证引入了证书的概念,是https使用的加密方式,弥补了非对称加密中公钥被泄露,掉包或篡改的危险

requests模块

python中基于网络请求的模块,功能强大,简单便捷,效率极高。
作用:模拟浏览器发送请求
如何使用:(requests模块的编码流程)- 指定URL- 发起请求- 获取响应数据- 持久化存储环境安装:pip install requests或pycharm解释器中直接搜索安装
实战编码:爬取搜狗首页的页面数据

代码:

#导入包
import requests
if __name__ == '__main__':#step01:指定URLurl="https://www.sogou.com/"#step02:发起请求,get方法会返回一个响应对象response=requests.get(url=url)#step03:获取响应对象中的响应数据.text返回的是字符串形式的响应数据page_txt=response.text#持久化存储with open("sogou.html","w",encoding="UTF-8") as fp:fp.write(page_txt)print("爬取数据结束!!!")
案例一:制作简易的网页采集器


网址为红色框内的内容

**
UA(UserAgent:请求载体身份标识):
门户网站的服务器会检测对应请求的载体的身份标识,如果检测到的请求的载体身份为某一款浏览 器,说明该请求是一个正常的请求,但是如果检测到的请求的载体身份不是基于某一款浏览器的,则 表示该请求为不正常的请求(爬虫)

UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器
**
获取某款浏览器的User-Agent,通过抓包获取

代码如下:

import requests
if __name__ == '__main__':#UA伪装:将对应的User-Agent(某一款浏览器的标识)封装到一个字典中headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.50"}#指定urlurl="https://www.sogou.com/web?"#处理url携带的参数(设置为动态参数):封装到字典中kw=input("请输入要搜索的事物:")param={"query":kw}#发送请求,获取响应对象response=requests.get(url=url,params=param,headers=headers)#获取响应内容page_txt=response.text#持久化存储#动态化存储名称fileName=kw+".html"with open(fileName,"w",encoding="UTF-8") as fp:fp.write(page_txt)print(fileName+"保存成功!!!")
案列二:百度翻译破解


如果数据是json,则返回字典
如果数据是text,则返回字符串

#数据是json格式
response=requests.get(url=url,headers=header,params=param)
dict_data=response.json()
#数据是text格式
response=requests.get(url=url,headers=header,params=param)
str_data=response.text()

Header中的Referer
Referer 是 HTTP 请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送 请求的时候,头信息里有包含 Referer 。

Referer的作用?

1.防盗链
将这个http请求发给服务器后,如果服务器要求必须是某个地址或者某几个地址才能访问,而你发送的referer不符合他的要求,就会拦截或者跳转到他要求的地址,然后再通过这个地址进行访问。

2.防止恶意请求
比如静态请求是*.html结尾的,动态请求是*.shtml,那么由此可以这么用,所有的*.shtml请求,必须 Referer 为我自己的网站。

Referer=http://www.google.com

允许 Referer 为空,意味着你允许比如浏览器直接访问,就是空。

案例三
#爬取豆瓣电影
import requests
import json
#UA伪装
header={#请求标识载体"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36"
}
#指定url
url="https://movie.douban.com/j/chart/top_list"
#处理参数
param={"type":"24","interval_id":"100:90","action":"","start":0,"limit":20
}
#获取响应对象
response=requests.get(url=url,params=param,headers=header)
print(response.json())
response.close()

数据解析

1.re(正则) Regular Expression

元字符

量词



贪婪匹配:匹配字符多的
惰性匹配:匹配字符少的

re模块

2.bs4解析
3.xpath解析

爬取淘宝数据+数据解析

#导入包
import csv
import json
import requests
import re
#设置url
url="https://s.taobao.com/search?q=手机&imgfile=&js=1&stats_click=search_radio_all:1&initiative_id=staobaoz_20220929&ie=utf8"
#设置请求头
headers={
'cookie':'cna=Lui5G1j3TWgCAXxd+EIDtH8T; sgcookie=E100vxvQoorHf6%2FlqRI0LHI5B03U5MC11KRm1Jcak1Iwh%2B1475w46PnDeo81M7FjBzhA32P3C0FUbW0eykTwsYPciG%2Fxvd2orx4VrnrXzT1X9II%3D; uc3=id2=UNGXFRPtNcIWBw%3D%3D&lg2=UtASsssmOIJ0bQ%3D%3D&nk2=sEVjCV4oG1fwQI%2BVa%2BA%3D&vt3=F8dCv4U9ZnOxw3xX0xQ%3D; lgc=%5Cu4F18%5Cu70B9%5Cu4E2D%5Cu7684%5Cu4E0D%5Cu4E00%5Cu6837; uc4=id4=0%40UgbvC8RkTs24%2BY%2BPA5lh8nAeXm2s&nk4=0%40sr1wD2bwUU7ET%2B3Rg2vODdGJpCgTIidLAQ%3D%3D; tracknick=%5Cu4F18%5Cu70B9%5Cu4E2D%5Cu7684%5Cu4E0D%5Cu4E00%5Cu6837; _cc_=WqG3DMC9EA%3D%3D; enc=axuCtPZuy2IKvvyPbZia3ikIEmjBlWC0Si07%2BzzaBeQRyfsl1By1RqrZFsfvypxiXga%2FIgvb97xp3tfhtLKVog%3D%3D; mt=ci=-1_0; thw=cn; _m_h5_tk=31cd87bf813bfa1108c93ea71d22f793_1664445685330; _m_h5_tk_enc=03b672c6dea306c97ee802a93a7fc64f; uc1=cookie14=UoeyChYX4riVFg%3D%3D; cookie2=19bd55fb1fb30246f9cab9d7feed49c2; t=4f91f7992d0deae3445bd869e6f20a68; _tb_token_=fa536e6531e65; alitrackid=www.taobao.com; lastalitrackid=www.taobao.com; xlly_s=1; JSESSIONID=35B4B9F66F17EFC57F9871006BFD2C87; tfstk=cFuVBRTIqELqUqc9pz4Zzv8AyeUAZ9wgdaPUmpCi1kIWNSqci56TZwCza55PIof..; l=eBQAj38RT_E6iK8kBOfZnurza77TsIRAguPzaNbMiOCPO35p5i3PW6u7A1Y9CnGVh6J9R3rp2umHBeYBqIv4n5U62j-la6Dmn; isg=BPz8CUWss7qKj4dnhkPhfGUczZqu9aAfMxHg79Z9AefKoZwr_gX1r3oTgcnZ6dh3',
'referer':'https://s.taobao.com/search?q=iphone+14&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.jianhua.201856-taobao-item.2&ie=utf8&initiative_id=tbindexz_20170306',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
#获取响应数据
response=requests.get(url=url,headers=headers)
#response.text得到的是html代码
html_data=response.text
# print(html_data)
#正则匹配,获取html代码中g_page_config,因为g_page_config中存储的数据才包含商品数据
json_str=re.findall("g_page_config=(.*);",html_data)[0]
print(json_str)
#将json数据转换python字典数据
dict_data=json.loads(json_str)
#取出商品列表
com_data=dict_data["mods"]["itemlist"]["data"]["auctions"]
#遍历各个商品得到其数据
for elements in  com_data:# 商品标题raw_title = elements["raw_title"]# 图片链接pic_url = elements["pic_url"]# 详情链接detail_url = elements["detail_url"]# 价格view_price = elements["view_price"]# 地点item_loc = elements["item_loc"]# 付款人数try:view_sales = elements["view_sales"]except Exception as e:print(e)# 商品公司nick = elements["nick"]#持久化数据with open("exciser.csv","a",encoding="utf-8") as f:csv_wr=csv.writer(f)csv_wr.writerow([raw_title,pic_url,detail_url,view_price,item_loc,view_sales,nick])

Python高阶---数据分析和网络爬虫相关推荐

  1. python高阶面试题_Python 爬虫面试题 170 道:2019 版

    通过本场 Chat,你将获得如下知识点:掌握 Python 的基础语法 语法常见的 Python 应用场景 掌握 Python 闭包的使用以及装饰器的使用 生成器和迭代器的使用 常见的设计模式的使用 ...

  2. python高阶学习之一:c++调用python

    python高阶学习之一:c++调用python python已经成为当今人工智能和数据分析的主流语言,掌握python就好像拿到了进入AI分析殿堂的门票一样,无论如何任何事情都要从一点一滴做起,不要 ...

  3. python高阶3D绘图---pyvista模块,mayavi模块,pyopengl模块,MoviePy模块基础使用

    目录 一.python三维绘图 二.python动画生成 三.项目文件: 一.python三维绘图 ​ ~~~~~~~~         python借助于其编写简单,三方库丰富的特点,可以极为方便的 ...

  4. 快速记忆python函数-【速学速记】Python 高阶函数

    原标题:[速学速记]Python 高阶函数 前言: python 迅速发展壮大起来,多亏了人工智能,AI ,机器学习,深度学习的发展.所以小的给各位看官们准备了收藏已久的视频教程分享给大家!希望能带给 ...

  5. python高阶函数filter_python 高阶函数之filter

    前文说到python高阶函数之map,相信大家对python中的高阶函数有所了解,此次继续分享python中的另一个高阶函数filter. 先看一下filter() 函数签名 >>> ...

  6. python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)

    一.上节回顾 Python2与Python3字符编码问题,不管你是初学者还是已经对Python的项目了如指掌了,都会犯一些编码上面的错误.我在这里简单归纳Python3和Python2各自的区别. 首 ...

  7. 廖雪峰讲python高阶函数求导公式_一文读懂Python 高阶函数

    高阶函数 将函数作为参数传入,这样的函数称为高阶函数.函数式编程就是指这种高度抽象的编程范式. 变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函 ...

  8. python高阶函数map_简单了解python高阶函数map/reduce

    高阶函数map/reduce Python内建了map()和reduce()函数. 我们先看map.map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每 ...

  9. python高阶_Python高阶学习

    学习目录阿力阿哩哩:深度学习 | 学习目录​zhuanlan.zhihu.com 上一期我们讲到阿力阿哩哩:Python进阶学习​zhuanlan.zhihu.com 3.4 Python高阶学习 3 ...

最新文章

  1. HTML5画布(CANVAS)速查简表
  2. 李宏毅深度学习作业二
  3. 在命令行中管理 Wifi 连接
  4. [0] OpenCV_Notes - 琐碎
  5. Linux学习:第三章-Linux常用命令-1
  6. fsmc同步通信设置_微服务模式-同步与异步
  7. 【JSOI2008】【bzoj1012】最大数maxnumber
  8. 制图折断线_CAD制图规范及技巧总结大全
  9. B站视频下载方法(4K60帧)
  10. 前端 DFA 敏感词过滤
  11. java 过滤微信昵称_java过滤微信昵称特殊字符
  12. python-PIL生成棋盘纹理图片
  13. Elasticsearch 摄取节点(Ingest Node)使用Pipeline预处理文档
  14. unity pico3 手柄摇杆控制物体移动和旋转
  15. python 数据分析、挖掘与可视化 day3
  16. vue-cli 项目踩坑 npm install 时出错
  17. 自选天气,F1 Delta Time 大奖赛重燃战火
  18. HDLC协议基本功能模拟实现 (C语言)
  19. Oracle P6软件如何编制一级计划
  20. HMM——参数学习问题(求解参数)

热门文章

  1. 读书笔记: Cartesian Impedance Control of Redundant and Flexible-Joint Robots, Section 2
  2. Jira用户操作手册之创建项目
  3. 恒大再控股轮毂电机公司 整合业务速度或成下个挑战...
  4. 零基础《7天学会PPT》系列教程(WPS版)—— 第1天 一页一故事
  5. ★ 数据仓库设计的21条原则
  6. LeetCode——哈希表经典例题
  7. Charles青花瓷 解锁https
  8. Excel如何快速从邮箱中提取QQ号码
  9. 7-7 就不告诉你 (15 分)
  10. 大宗农产品交易知识图谱推理引擎的构建--需求分析