Python爬虫项目(Python爬虫项目100例)

http://www.itjxue.com  2023-03-30 19:31  来源:未知  点击次数: 

Python中的爬虫框架有哪些呢?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实现你想要的功能。更重要的,Python也是数据挖掘和分析的好能手。那么,Python爬虫一般用什么框架比较好?

一般来讲,只有在遇到比较大型的需求时,才会使用Python爬虫框架。这样的做的主要目的,是为了方便管理以及扩展。本文我将向大家推荐十个Python爬虫框架。

1、Scrapy:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。它是很强大的爬虫框架,可以满足简单的页面爬取,比如可以明确获知url pattern的情况。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。它的特性有:HTML, XML源数据 选择及提取 的内置支持;提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。

2、Crawley:高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等。

3、Portia:是一个开源可视化爬虫工具,可让使用者在不需要任何编程知识的情况下爬取网站!简单地注释自己感兴趣的页面,Portia将创建一个蜘蛛来从类似的页面提取数据。简单来讲,它是基于scrapy内核;可视化爬取内容,不需要任何开发专业知识;动态匹配相同模板的内容。

4、newspaper:可以用来提取新闻、文章和内容分析。使用多线程,支持10多种语言等。作者从requests库的简洁与强大得到灵感,使用Python开发的可用于提取文章内容的程序。支持10多种语言并且所有的都是unicode编码。

5、Python-goose:Java写的文章提取工具。Python-goose框架可提取的信息包括:文章主体内容、文章主要图片、文章中嵌入的任何Youtube/Vimeo视频、元描述、元标签。

6、Beautiful Soup:名气大,整合了一些常用爬虫需求。它是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。Beautiful Soup的缺点是不能加载JS。

7、mechanize:它的优点是可以加载JS。当然它也有缺点,比如文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。

8、selenium:这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。Selenium是自动化测试工具,它支持各种浏览器,包括 Chrome,Safari,Firefox等主流界面式浏览器,如果在这些浏览器里面安装一个 Selenium 的插件,可以方便地实现Web界面的测试. Selenium支持浏览器驱动。Selenium支持多种语言开发,比如 Java,C,Ruby等等,PhantomJS 用来渲染解析JS,Selenium 用来驱动以及与Python的对接,Python进行后期的处理。

9、cola:是一个分布式的爬虫框架,对于用户来说,只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。项目整体设计有点糟,模块间耦合度较高。

10、PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。Python脚本控制,可以用任何你喜欢的html解析包。

python基础 爬虫项目有哪些?

我们上篇才讲了面试中需要准备的内容,关于最后一点可能讲的不是很详细,小伙伴们很有对项目这块很感兴趣。毕竟所有的理论知识最后都是通过实践检验的,如果能有拿得出手的项目,面试中会大大的加分。下面小编就来跟大讲讲python的爬虫项目有哪些以及该学点什么内容。

wesome-spider

这一项目收集了100多个爬虫,默认使用了Python作为爬虫语言。你既可以在这个项目中,找到爬取Bilibili视频的爬虫,也可以使用爬虫,通过豆瓣评分和评价人数等各项数据,来挖掘那些隐藏的好书,甚至还可以用来爬取京东、链家、网盘等生活所需的数据。此外,这个项目还提供了一些很有意思的爬虫,比如爬取神评论、妹子图片、心灵毒鸡汤等等,既有实用爬虫,也有恶搞自嗨,满足了大部分人实用爬虫的需求。

Nyspider

Nyspider也非常厉害,如果你想获得“信息”,它是一个不错的选择。在这个项目里,你既能获取链家的房产信息,也可以批量爬取A股的股东信息,猫眼电影的票房数据、还可以爬取猎聘网的招聘信息、获取融资数据等等,可谓是爬取数据,获取信息的好手。

python-spider

这个项目是ID为Jack-Cherish的东北大学学生整理的python爬虫资料,涵盖了很多爬虫实战项目,如下载漫画、答题辅助系统、抢票小助手等等等等。如果你已经学会了爬虫,急切得像找一些项目练手,这里就可以满足你的这一需求。当然,W3Cschool上也有很多爬虫实战项目,有需要的同学,也可以拿来作为练习使用。

以上的3个模块基于GitHub中的部分内容,感兴趣的小伙伴也可以了解下其他的模块,毕竟GitHub使用也比较广泛。更多Python学习推荐:PyThon学习网教学中心。

python爬虫项目实战:爬取用户的所有信息,如性别、年龄等

python爬虫项目实战:

爬取糗事百科用户的所有信息,包括用户名、性别、年龄、内容等等。

10个步骤实现项目功能,下面开始实例讲解:

1.导入模块

import re

import urllib.request

from bs4 import BeautifulSoup

2.添加头文件,防止爬取过程被拒绝链接

def qiuShi(url,page):

################### 模拟成高仿度浏览器的行为 ##############

heads ={

'Connection':'keep-alive',

'Accept-Language':'zh-CN,zh;q=0.9',

'Accept':'text/html,application/xhtml+xml,application/xml;

q=0.9,image/webp,image/apng, / ;q=0.8',

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36

(KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',

}

headall = []

for key,value in heads.items():

items = (key,value)

headall.append(items)

opener = urllib.request.build_opener()

opener.addheaders = headall

urllib.request.install_opener(opener)

data = opener.open(url).read()().decode()

################## end ########################################

3.创建soup解析器对象

soup = BeautifulSoup(data,'lxml')

x = 0

4.开始使用BeautifulSoup4解析器提取用户名信息

############### 获取用户名 ########################

name = []

unames = soup.find_all('h2')

for uname in unames:

name.append(uname.get_text())

#################end#############################

5.提取发表的内容信息

############## 发表的内容 #########################

cont = []

data4 = soup.find_all('div',class_='content')

data4 = str(data4)

soup3 = BeautifulSoup(data4,'lxml')

contents = soup3.find_all('span')

for content in contents:

cont.append(content.get_text())

##############end####################################

6.提取搞笑指数

#################搞笑指数##########################

happy = []

data2 = soup.find_all('span',class_="stats-vote")

data2 = str(data2) # 将列表转换成字符串形式才可以使用

soup1 = BeautifulSoup(data2,'lxml')

happynumbers = soup1.find_all('i',class_="number")

for happynumber in happynumbers:

happy.append(happynumber.get_text())

##################end#############################

7.提取评论数

############## 评论数 ############################

comm = []

data3 = soup.find_all('a',class_='qiushi_comments')

data3 = str(data3)

soup2 = BeautifulSoup(data3,'lxml')

comments = soup2.find_all('i',class_="number")

for comment in comments:

comm.append(comment.get_text())

############end#####################################

8.使用正则表达式提取性别和年龄

######## 获取性别和年龄 ##########################

pattern1 = 'div class="articleGender (w ?)Icon"(d ?)/div'

sexages = re.compile(pattern1).findall(data)

9.设置用户所有信息输出的格局设置

################## 批量输出用户的所以个人信息 #################

print()

for sexage in sexages:

sa = sexage

print(' ' 17, '= = 第', page, '页-第', str(x+1) + '个用户 = = ',' ' 17)

print('【用户名】:',name[x],end='')

print('【性别】:',sa[0],' 【年龄】:',sa[1])

print('【内容】:',cont[x])

print('【搞笑指数】:',happy[x],' 【评论数】:',comm[x])

print(' ' 25,' 三八分割线 ',' ' 25)

x += 1

###################end##########################

10.设置循环遍历爬取13页的用户信息

for i in range(1,14):

url = ' '+str(i)+'/'

qiuShi(url,i)

运行结果,部分截图:

(责任编辑:IT教学网)

更多

推荐JSP教程文章