本文作者:ptiyny

python线程学习 python 线程教程

ptiyny 07-05 25
python线程学习 python 线程教程摘要: 大家好,今天小编关注到一个比较有意思的话题,就是关于python线程学习的问题,于是小编就整理了2个相关介绍python线程学习的解答,让我们一起看看吧。python线程与进程的区...

大家好,今天小编关注到一个比较意思的话题,就是关于python线程学习问题,于是小编就整理了2个相关介绍Python线程学习的解答,让我们一起看看吧。

python线程学习 python 线程教程
图片来源网络,侵删)
  1. python线程与进程的区别?
  2. python爬虫怎么做?

python线程与进程区别

1、运行方式不同

进程不能单独执行,它只是***的集合

进程要操作CPU,必须要先创建一个线程。

所有在同一个进程里的线程,是同享同一块进程所占的内存空间。

python线程学习 python 线程教程
(图片来源网络,侵删)

2、关系

进程中第一个线程是主线程,主线程可以创建其他线程;其他线程也可以创建线程;线程之间是平等的。

进程有父进程和子进程,独立的内存空间,唯一的标识符:pid。

3、速度

python线程学习 python 线程教程
(图片来源网络,侵删)

启动线程比启动进程快。

运行线程和运行进程速度上是一样的,没有可比性。

python爬虫怎么做?

谢邀~~关注迭代,和小伙伴一起看↗↗↗python的知名用途之一就是做爬虫,爬取各类网站数据,以便进行进一步分析根据爬取的难易不同,(网站封堵的力度大小),会有多种的爬取方式。

简单网站,直接使用页面请求

python将***请求发送给服务器服务返回网页内容此时,就可以用python多线程的方式进行数据的抽取和分析、存储

从获取的html页面中,或者api获取的json中,得到自己需要的数据,然后存储到指定的数据库

用到的库主要为 :

  • ***访问: requests模块、或urllib3

  • 多线程:Threadthreadpool线程池,或者concurrent包里的ThreadPoolExecutor、或urllib3自带的PoolManager()


  • 数据存储:MySQL-python存储或者pymongo mongodb存储等等
进一步的,如果爬取量大,可以进行些简单的封装,让各个功能各司其职

比较正式的爬虫系统,可以用pythonScrapy

Scrapy已经提供了一整套的机制,来减少自己搭建爬虫系统的难度

被封堵的网站

网站封堵爬虫会有很多的不同的技术,并且这些技术都是在不断调整和完善的,网站有时也会修改界面或者接口,我们会经常会发现今天能爬取的网页,明天就不行了,这就需要经常检查和修复
  • 复杂的验证码就需要用些图像识别库来进行识别了,如pytesser,然后填充和认证通过

最后,我们就能够下载到所需要的文章、图片、***、视频、数据等等

❤❤❤❤❤ 请任性点赞,谢谢关注  -- 我是 极迭代 ,我为自己带盐 :)

  Python 爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)。

  

  调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作

  URL管理器:包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式,通过内存、数据库、缓存数据库来实现。

  网页下载器:通过传入一个URL地址来下载网页,将网页转换成一个字符串,网页下载器有urllib2(Python官方基础模块)包括需要登录、代理、和cookie,requests(第三方包)

  网页解析器:将一个网页字符串进行解析,可以按照我们的要求来[_a***_]出我们有用的信息,也可以根据DOM树的解析方式来解析。网页解析器有正则表达式(直观,将网页转成字符串通过模糊匹配的方式来提取有价值的信息,当文档比较复杂的时候,该方法提取数据的时候就会非常的困难)、html.parser(Python自带的)、beautifulsoup(第三方插件,可以使用Python自带的html.parser进行解析,也可以使用lxml进行解析,相对于其他几种来说要强大一些)、lxml(第三方插件,可以解析 xml 和 HTML),html.parser 和 beautifulsoup 以及 lxml 都是以 DOM 树的方式进行解析的。

  应用程序:就是从网页中提取的有用数据组成的一个应用。

  用一个图来解释一下调度器是如何协调工作的:

  

到此,以上就是小编对于python线程学习的问题就介绍到这了,希望介绍关于python线程学习的2点解答对大家有用。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享