导航:首页 > 编程语言 > python3爬虫库

python3爬虫库

发布时间:2024-09-24 07:02:33

‘壹’ python什么爬虫库好用

请求库:
1. requests 这个库是爬虫最常用的一个库
2. Selenium Selenium 是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作 对于一些用JS做谊染的页面来说,这种抓取方式是非常有效的。
3.ChomeDrive 安装了这个库,才能驱动Chrome浏览器完成相应的操作
4.GeckoDriver 使用W3C WebDriver兼容客户端与基于Gecko的浏览器进行交互的代理。
5.PhantomJS PhantomJS 是一个无界面 、可脚本编程的 WebKit 浏览器引擎,它原生支持多种Web标准:Dom操作,css选择器,json,Canvas以及SVG。
6.aiohttp 之前接收requests库是一个阻塞式HTTP请求库,当我们发送一个请求后。程序会一直等待服务器响应,直到服务器响应后,程序才会最下一步处理。其实,这个过程比较耗时间。如果程序可以在等待的过程中做一些其他的事情,如进行请求的调度,响应的处理等,那么爬虫的效率就会比之前的那种方式有很大的提升。 而aiohttp就是这样一个提供异步web服务的库。使用说这个库用起来还是相当方便的。
解析库:
1.lxml lxml是python的一个解析库,这个库支持HTML和xml的解析,支持XPath的解析方式,而且效率也是非常高的,深受广大程序员的热爱
2.Beautiful Soup Beautiful Soup也是python里一个HTML或XMl的解析库,它可以很方便的懂网页中提取数据,拥有强大的API和多种解析方式。
3.pyquery 同样是一个强大的网页解析工具,它提供了和 jQuery 类似的语法来解析HTML 文梢,

数据库:
1.mysql 数据库
2.MongoDB Mo goDB 是由 ++语言编写的非关系型数据库, 是一个基于分布式文件存储的开源数据库系统内容存储形式类似 JSON 对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活
3.Redis 是一个基于 存的高效的非关系型数据库,

存储库:
1.PyMySOL
2.PyMongo
3.redis-py
4.RedisDump

web库:
1.Flask 是一个轻量级的Web服务程序,它简单,易用,灵活
2.Tornado 是一个支持异步的Web框架,通过使用非阻塞I/O流,可以支持成千上万的开放式连接。

‘贰’ python3 怎么爬取新闻网站

需求:

从门户网站爬取新闻,将新闻标题,作者,时间,内容保存到本地txt中。

用到的python模块:

importre#正则表达式
importbs4#BeautifulSoup4解析模块
importurllib2#网络访问模块
importNews#自己定义的新闻结构
importcodecs#解决编码问题的关键,使用codecs.open打开文件
importsys#1解决不同页面编码问题

其中bs4需要自己装一下,安装方法可以参考:Windows命令行下pip安装python whl包

程序:

#coding=utf-8
importre#正则表达式
importbs4#BeautifulSoup4解析模块
importurllib2#网络访问模块
importNews#自己定义的新闻结构
importcodecs#解决编码问题的关键,使用codecs.open打开文件
importsys#1解决不同页面编码问题

reload(sys)#2
sys.setdefaultencoding('utf-8')#3

#从首页获取所有链接
defGetAllUrl(home):
html=urllib2.urlopen(home).read().decode('utf8')
soup=bs4.BeautifulSoup(html,'html.parser')
pattern='http://w+.jia..com/article/w+'
links=soup.find_all('a',href=re.compile(pattern))
forlinkinlinks:
url_set.add(link['href'])

defGetNews(url):
globalNewsCount,MaxNewsCount#全局记录新闻数量
whilelen(url_set)!=0:
try:
#获取链接
url=url_set.pop()
url_old.add(url)

#获取代码
html=urllib2.urlopen(url).read().decode('utf8')

#解析
soup=bs4.BeautifulSoup(html,'html.parser')
pattern='http://w+.jia..com/article/w+'#链接匹配规则
links=soup.find_all('a',href=re.compile(pattern))

#获取URL
forlinkinlinks:
iflink['href']notinurl_old:
url_set.add(link['href'])

#获取信息
article=News.News()
article.url=url#URL信息
page=soup.find('div',{'id':'page'})
article.title=page.find('h1').get_text()#标题信息
info=page.find('div',{'class':'article-info'})
article.author=info.find('a',{'class':'name'}).get_text()#作者信息
article.date=info.find('span',{'class':'time'}).get_text()#日期信息
article.about=page.find('blockquote').get_text()
pnode=page.find('div',{'class':'article-detail'}).find_all('p')
article.content=''
fornodeinpnode:#获取文章段落
article.content+=node.get_text()+' '#追加段落信息

SaveNews(article)

printNewsCount
break
exceptExceptionase:
print(e)
continue
else:
print(article.title)
NewsCount+=1
finally:
#判断数据是否收集完成
ifNewsCount==MaxNewsCount:
break

defSaveNews(Object):
file.write("【"+Object.title+"】"+" ")
file.write(Object.author+" "+Object.date+" ")
file.write(Object.content+" "+" ")

url_set=set()#url集合
url_old=set()#爬过的url集合

NewsCount=0
MaxNewsCount=3

home='http://jia..com/'#起始位置

GetAllUrl(home)

file=codecs.open("D:\test.txt","a+")#文件操作

forurlinurl_set:
GetNews(url)
#判断数据是否收集完成
ifNewsCount==MaxNewsCount:
break

file.close()

新闻文章结构

#coding:utf-8
#文章类定义
classNews(object):
def__init__(self):
self.url=None
self.title=None
self.author=None
self.date=None
self.about=None
self.content=None

对爬取的文章数量就行统计。

‘叁’ python绗涓夋柟搴撴湁鍝浜

python绗涓夋柟搴揿寘𨰾锛歍VTK銆丮ayavi銆乀raitUI銆丼ciPy銆

Python绗涓夋柟搴揟VTK锛岃茶В绉戝﹁$畻涓夌淮琛ㄨ揪鍜屽彲瑙嗗寲镄勫熀链姒傚康銆

Python绗涓夋柟搴揗ayavi锛岃茶В绉戝﹁$畻涓夌淮琛ㄨ揪鍜屽彲瑙嗗寲镄勪娇鐢ㄦ柟娉曘

Python绗涓夋柟搴揟raitUI锛岃茶В浜や簰寮忕戝﹁$畻涓夌淮鏁堟灉搴旂敤镄勫紑鍙戞柟娉曘

Python绗涓夋柟搴揝ciPy锛屽埯姝ヤ粙缁岖戝﹁$畻宸ュ叿绠便

Python绉戝﹁$畻涓夌淮鍙瑙嗗寲璇剧▼璁茶В锛屽埄鐢≒ython璇瑷瀵圭戝﹁$畻鏁版嵁杩涜岃〃杈惧拰涓夌淮鍙瑙嗗寲灞旷ず镄勬妧链鍜屾柟娉曪纴甯锷╁︿範钥呮帉鎻″埄鐢ㄤ笁缁存晥鏋滆〃杈剧戝﹀拰宸ョ▼鏁版嵁镄勮兘锷涖侾ython绉戝﹁$畻涓夌淮鍙瑙嗗寲璇剧▼闱㈠悜绉戝﹀拰宸ョ▼鑳屾櫙镄勭紪绋嫔︿範钥呫

Python镄勭壒镣

绠鍗曪细Python鏄涓绉崭唬琛ㄧ亩鍗曚富涔夋濇兂镄勮瑷銆傞槄璇讳竴涓镩濂界殑Python绋嫔簭灏辨劅瑙夊儚鏄鍦ㄨ昏嫳璇涓镙枫傚畠浣夸綘鑳藉熶笓娉ㄤ簬瑙e喅闂棰樿屼笉鏄铡绘闷鏄庣槠璇瑷链韬銆

鏄揿︼细Python鏋佸叾瀹规槗涓婃坠锛屽洜涓篜ython链夋瀬鍏剁亩鍗旷殑璇存槑鏂囨。銆

鏄撶淮鎶わ细椋庢牸娓呮榈鍒掍竴銆佸己鍒剁缉杩涖

阃熷害杈冨揩锛歅ython镄勫簳灞傛槸鐢–璇瑷鍐欑殑锛屽緢澶氭爣鍑嗗簱鍜岀涓夋柟搴扑篃閮芥槸鐢–鍐欑殑锛岃繍琛岄熷害闱炲父蹇銆

鍏嶈垂寮婧愶细Python鏄疐LOSS锛堣嚜鐢憋纺寮鏀炬簮镰佽蒋浠讹级涔嬩竴銆备娇鐢ㄨ呭彲浠ヨ嚜鐢卞湴鍙戝竷杩欎釜杞浠剁殑𨰾疯礉銆侀槄璇诲畠镄勬簮浠g爜銆佸瑰畠锅氭敼锷ㄣ佹妸瀹幂殑涓閮ㄥ垎鐢ㄤ簬鏂扮殑镊鐢辫蒋浠朵腑銆侳LOSS鏄锘轰簬涓涓锲浣揿垎浜鐭ヨ瘑镄勬傚康銆

浠ヤ笂鍐呭瑰弬钥锏惧害锏剧-Python绉戝﹁$畻涓夌淮鍙瑙嗗寲

‘肆’ python爬虫用什么库

以下是爬虫经常用到的库

请求库

1. requests

requests库应该是现在做爬虫最火最实用的库了,非常的人性化。有关于它的使用我之前也写过一篇文章 一起看看Python之Requests库 ,大家可以去看一下。

2.urllib3

urllib3是一个非常强大的http请求库,提供一系列的操作URL的功能。

3.selenium

自动化测试工具。一个调用浏览器的 driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。

对于这个库并非只是Python才能用,像JAVA、Python、C#等都能够使用selenium这个库

4.aiohttp

基于 asyncio 实现的 HTTP 框架。异步操作借助于 async/await 关键字,使用异步库进行数据抓取,可以大大提高效率。

这个属于进阶爬虫时候必须掌握的异步库。有关于aiohttp的详细操作,可以去官方文档:https://aiohttp.readthedocs.io/en/stable/

Python学习网- 专业的python自学、交流公益平台!

解析库

1、beautifulsoup

html 和 XML 的解析,从网页中提取信息,同时拥有强大的API和多样解析方式。一个我经常使用的解析库,对于html的解析是非常的好用。对于写爬虫的人来说这也是必须掌握的库。

2、lxml

支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。

3、pyquery

jQuery 的 Python 实现,能够以 jQuery 的语法来操作解析 HTML 文档,易用性和解析速度都很好。

数据存储

1、pymysql

官方文档:https://pymysql.readthedocs.io/en/latest/

一个纯 Python 实现的 MySQL 客户端操作库。非常的实用、非常的简单。

2、pymongo

官方文档:https://api.mongodb.com/python/

顾名思义,一个用于直接连接 mongodb 数据库进行查询操作的库。

3、redismp

redis-mp是将redis和json互转的工具;redis-mp是基于ruby开发,需要ruby环境,而且新版本的redis-mp要求2.2.2以上的ruby版本,centos中yum只能安装2.0版本的ruby。需要先安装ruby的管理工具rvm安装高版本的ruby。

阅读全文

与python3爬虫库相关的资料

热点内容
如何注册阿里服务器 浏览:142
如果用python搜人口 浏览:705
2012服务器64系统下载地址 浏览:625
python包含某个元素的个数 浏览:272
空气动力学pdf 浏览:658
斗地主连对算法 浏览:145
增加服务器和桌面云区别 浏览:716
python的包安装不上 浏览:802
极光tvapp怎么投屏 浏览:42
python画图例子 浏览:1011
云服务器怎么装主机 浏览:459
表格文件夹图标怎么调大小 浏览:685
命令方块怎么在手机上玩 浏览:269
某个app加密 浏览:845
python3爬虫库 浏览:916
linux自动清理 浏览:827
螺杆压缩机排气量 浏览:812
服务器神秘6怎么玩 浏览:341
iphone备份怎么更新不了app 浏览:826
命运2连不上服务器是什么原因 浏览:700