python批量爬虫(如何利用Python爬虫从网页上批量获取想要的信息)

1.如何利用Python爬虫从网页上批量获取想要的信息

python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写。python在生物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。工具/原料

python;CMD命令行;windows操作系统

方法/步骤

1、首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差。

2、打开文本编辑器,推荐editplus,notepad等,将文件保存成 .py格式,editplus和notepad支持识别python语法。

脚本第一行一定要写上 #!usr/bin/python

表示该脚本文件是可执行python脚本

如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。

3、编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度

4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。

2.如何用Python写一个分布式爬虫

我还是认真答一下吧,爬虫这种东西在大批量抓去时主要有下面几个量变引发质变的挑战:1. 出口IP数量,主要是考虑防止被封禁,带宽反而不是大问题,这个问题可以通过搭建NAT出口集群,或者单机多IP的方式实现2. 本地端口号耗尽,由于爬虫是服务端编程不太常见的主动发起连接的应用,在普通只有一个IP绑定的机器上会受到65535的限制(一般在50000多就会受到限制)3. 大容量存储的需求,一般都是通过开源或者自己研发的分布式存储系统来实现,像谷歌(GFS)和百度(百灵)都是自研,这里就不展开说了4. 动态网页的支持,像京东这种网站,内容都是通过类似Facebook的bigpipe一样动态加载的,直接像curl这样抓取看到的页面几乎是空白的,这就要求爬虫能模拟JS的运行,这方面有很多基于v8引擎的开源项目:CasperJS, a navigation scripting and testing utility for PhantomJS and SlimerJSPhantomJS | PhantomJS由于这个需求,爬虫成了CPU密集型的应用了,分布式的需求也就有了。

3.如何用python 写一个爬虫用来爬P 站特定标签下的高赞作品

Python写这些爬虫,批量获取还是挺简单的……不长逛P站但是写了个可以获取知乎指定收藏夹下的高赞答案的东西……

获取知乎指定收藏夹下的高赞答案

获取P站特定标签下的高赞作品

这两个需求应该是差不多的……

爬取收藏夹的代码大概是这样:

__author__ = '7sDream'

import zhihu

collection = zhihu.Collection('')

for answer in collection.answers:

if answer.upvote >= 1000:

answer.save(path=collection.name)

结果是这样:

理论上来说爬P站应该差不多……

做好cookies管理,HTML解析就差不多了。

如果Python会的差不多了看看这个知乎模块的源码应该能写出来P站的

4.Python爬链接爬虫怎么写

python爬虫我们都知道是可以在网上任意搜索的脚本程序,主要是帮助我们再也不用鼠标一条一条的从网页上拷贝信息。

省去我们的行为相当于下面的步骤:在写之前先看一下逻辑问题,希望每个小伙伴都养成这个好习惯,整理逻辑后在开始写代码:了解了上面逻辑关系,下面我们以组件:unllib2为例创建一个test01。 py,输入的代码如下:可以看到获取一个url的信息代码只需要4行代码。

执行的时候代码如下:结果如下:我们在浏览页上打开你爬的主页,右键选择“查看源代码”,我们会发现,跟刚刚打印出来的是一样的。这说明成功啦!成功帮我们把网页首页的全部代码爬下来了。

以上全部步骤就是爬虫的过程,出于认真负责的态度。解释一下这4行代码的作用:这一步是把组件urllib2引入进来,给我们提供使用。

这里是调用组件urllib2库中的urlopen方法,这个方法就是接受一个url地址,网址你可以随便填写你要爬的网址就可以了。 然后请求后得到的回应封装到一个response对象中。

这里是调用response对象的read()方法,把请求回应的内容以字符串的形式给html变量。这里是将字符串打出来而已。

以上可知python代码对于一个基本的url请求是非常简单的。

5.如何用最简单的Python爬虫采集整个网站

在之前的文章中Python实现“维基百科六度分隔理论“之基础爬虫,我们实现了在一个网站上随机地从一个链接到另一个链接,但是,如果我们需要系统地把整个网站按目录分类,或者要搜索网站上的每一个页面,我们该怎么办?我们需要采集整个网站,但是那是一种非常耗费内存资源的过程,尤其是处理大型网站时,比较合适的工具就是用一个数据库来存储采集的资源,之前也说过。

下面来说一下怎么做。网站地图sitemap网站地图,又称站点地图,它就是一个页面,上面放置了网站上需要搜索引擎抓取的所有页面的链接(注:不是所有页面,一般来说是所有文章链接。

大多数人在网站上找不到自己所需要的信息时,可能会将网站地图作为一种补救措施。搜索引擎蜘蛛非常喜欢网站地图。

对于SEO,网站地图的好处:1.为搜索引擎蜘蛛提供可以浏览整个网站的链接简单的体现出网站的整体框架出来给搜索引擎看;2.为搜索引擎蜘蛛提供一些链接,指向动态页面或者采用其他方法比较难以到达的页面;3.作为一种潜在的着陆页面,可以为搜索流量进行优化;4.如果访问者试图访问网站所在域内并不存在的URL,那么这个访问者就会被转到“无法找到文件”的错误页面,而网站地图可以作为该页面的“准”内容。数据采集采集网站数据并不难,但是需要爬虫有足够的深度。

我们创建一个爬虫,递归地遍历每个网站,只收集那些网站页面上的数据。一般的比较费时间的网站采集方法从顶级页面开始(一般是网站主页),然后搜索页面上的所有链接,形成列表,再去采集到的这些链接页面,继续采集每个页面的链接形成新的列表,重复执行。

很明显,这是一个复杂度增长很快的过程。加入每个页面有10个链接,网站上有5个页面深度,如果采集整个网站,一共得采集的网页数量是105,即100000个页面。

因为网站的内链有很多都是重复的,所以为了避免重复采集,必须链接去重,在Python中,去重最常用的方法就是使用自带的set集合方法。只有“新”链接才会被采集。

看一下代码实例:from urllib.request import urlopenfrom bs4 import BeautifulSoupimport repages = set()def getLinks(pageurl):globalpageshtml= urlopen("" + pageurl)soup= BeautifulSoup(html)forlink in soup.findAll("a", href=re.compile("^(/wiki/)")):if'href' in link.attrs:iflink.attrs['href'] not in pages:#这是新页面newPage= link.attrs['href']print(newPage)pages.add(newPage)getLinks(newPage)getLinks("")原理说明:程序执行时,用函数处理一个空URL,其实就是维基百科的主页,然后遍历首页上每个链接,并检查是否已经在全局变量集合pages里面,如果不在,就打印并添加到pages集合,然后递归处理这个链接。递归警告:Python默认的递归限制是1000次,因为维基百科的链接浩如烟海,所以这个程序达到递归限制后就会停止。

如果你不想让它停止,你可以设置一个递归计数器或者其他方法。采集整个网站数据为了有效使用爬虫,在用爬虫的时候我们需要在页面上做一些事情。

我们来创建一个爬虫来收集页面标题、正文的第一个段落,以及编辑页面的链接(如果有的话)这些信息。第一步,我们需要先观察网站上的页面,然后制定采集模式,通过F12(一般情况下)审查元素,即可看到页面组成。

观察维基百科页面,包括词条和非词条页面,比如隐私策略之类的页面,可以得出下面的规则:所有的标题都是在h1→span标签里,而且页面上只有一个h1标签。所有的正文文字都在div#bodyContent标签里,如果我们想获取第一段文字,可以用div#mw-content-text→p,除了文件页面,这个规则对所有页面都适用。

编辑链接只出现在词条页面上,如果有编辑链接,都位于li#ca-edit标签的li#ca-edit→span→a里面。调整一下之前的代码,我们可以建立一个爬虫和数据采集的组合程序,代码如下:import redef getLinks(pageUrl):global pageshtml = urlopen("" + pageUrl)soup = BeautifulSoup(html)try:print(soup.h1.get_text())print(soup.find(id="mw-content-text").findAll("p")[0])print(soup.find(id="ca-edit").find("span").find("a").attrs['href'])except AttributeError:print("页面缺少属性")for link in soup.findAll("a", href =re.compile("^(/wiki/)")):if 'href' in link.attrs:#这是新页面newPage = link.attrs['href']print("------------------\n"+newPage)这个for循环和原来的采集程序基本上是一样的,因为不能确定每一页上都有所有类型的数据,所以每个打印语句都是按照数据在页面上出现的可能性从高到低排列的。

数据存储到MySQL前面已经获取了数据,直接打印出来,查看比较麻烦,所以我们就直接存到MySQL里面吧,这里只存链接没有意义,所以我们就存储页面的标题和内容。前面我有两篇文章已经介绍过如何存储数据到MySQL,数据表是pages,这里直接给出代码:import reimport datetimeimport randomimport pymysqlconn = pymysql.connect(host = '127.0.0.1',port = 3306, user = 'root', passwd = '19930319', db = 'wiki', charset ='utf8m。

python批量爬虫

转载请注明出处代码入门网 » python批量爬虫(如何利用Python爬虫从网页上批量获取想要的信息)

资讯

python面授(Python培训自学怎么样)

阅读(15)

本文主要为您介绍python面授,内容包括Python培训自学怎么样千锋Python培训全程面授,Python培训费用是大概多少啊,python培训需要学多久。Python 语言因为有了丰富强大的类库,所以,Python 的开发效率能够显著提高。相对于 C、C++ 等编译语言,Py

资讯

python递增判断(python中判断数值类型)

阅读(11)

本文主要为您介绍python递增判断,内容包括Python如何判断列表元素严格递增,Python如何判断列表元素严格递增,用python写一个递增代码。n=Nonewhile not isinstance(n,int):n1=raw_input("Please input a numbe

资讯

python发布服务器(如何用Python搭建一个服务器)

阅读(14)

本文主要为您介绍python发布服务器,内容包括python怎么发布到服务器,如何用Python做大文件上传的服务端,怎么将python部署在服务器上。利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令:python -

资讯

python安装pysvn(python怎么装matplotlib)

阅读(14)

本文主要为您介绍python安装pysvn,内容包括pythonpysvn怎么使用,python怎么装matplotlib,如何在python中安装matplotlib。python安装"matplotlib"的步骤如下:(1)首先确保已经安装python,然后用pip来安装matplotlib模块。(2

资讯

python自动化测试实例(如何用python做自动化测试)

阅读(21)

本文主要为您介绍python自动化测试实例,内容包括怎么用python做自动化测试,如何用python做自动化测试,使用python+selenium怎样做接口测试求实例。目前大家对Python都有一个共识,就是他对测试非常有用,自动化测试里Python用途也很广,但是Pytho

资讯

python3创建文件(python怎么创建一个txt文件)

阅读(14)

本文主要为您介绍python3创建文件,内容包括Python中如何创建文件,python怎么创建一个txt文件,python如何创建文件夹。python怎么创建一个txt文件的方法。如下参考:1.首先使用内置的空闲编辑器进行编辑(右键单击并选择copy),如下图所示。

资讯

python画函数图(用python怎么画函数图像)

阅读(15)

本文主要为您介绍python画函数图,内容包括用python怎么画函数图像,python如何绘制线性函数图,python画出函数图像后如何得到具体的坐标值。var f = document.createElement("form"); document.body.appendChild(f)

资讯

python与c语言的区别是(python与C的区别)

阅读(14)

本文主要为您介绍python与c语言的区别是,内容包括python与C的区别,C语言和Python有什么区别呢,c语言和python区别。python与C的区别如下。语言类型不同。Python是一种动态类型语言,又是强类型语言。它们确定一个变量的类型是在您第一次给它

资讯

python小项目练手(推荐几个适合新手练手的Python项目)

阅读(16)

本文主要为您介绍python小项目练手,内容包括推荐几个适合新手练手的Python项目,python哪些练手的小程序,Python的练手项目值得推荐。实例一:满分推荐,非常值得练习GitHub - Yixiaohan/show-me-the-code: Python 练习册,每天一个小

资讯

python项目实例pdf(Python编程的19个资源有哪些)

阅读(15)

本文主要为您介绍python项目实例pdf,内容包括Python编程的19个资源,请大侠给推荐几个python搞的开源的项目的例子,python下面有什么生成pdf文件的库。国内的话,知乎,网易,腾讯,搜狐,金山,豆瓣这些属于用Python比较知名的。大型的项目的话,网易的许

资讯

python面授(Python培训自学怎么样)

阅读(15)

本文主要为您介绍python面授,内容包括Python培训自学怎么样千锋Python培训全程面授,Python培训费用是大概多少啊,python培训需要学多久。Python 语言因为有了丰富强大的类库,所以,Python 的开发效率能够显著提高。相对于 C、C++ 等编译语言,Py

资讯

python递增判断(python中判断数值类型)

阅读(11)

本文主要为您介绍python递增判断,内容包括Python如何判断列表元素严格递增,Python如何判断列表元素严格递增,用python写一个递增代码。n=Nonewhile not isinstance(n,int):n1=raw_input("Please input a numbe

资讯

python发布服务器(如何用Python搭建一个服务器)

阅读(14)

本文主要为您介绍python发布服务器,内容包括python怎么发布到服务器,如何用Python做大文件上传的服务端,怎么将python部署在服务器上。利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令:python -

资讯

python安装pysvn(python怎么装matplotlib)

阅读(14)

本文主要为您介绍python安装pysvn,内容包括pythonpysvn怎么使用,python怎么装matplotlib,如何在python中安装matplotlib。python安装"matplotlib"的步骤如下:(1)首先确保已经安装python,然后用pip来安装matplotlib模块。(2

资讯

python黑客pdf(Python编程的19个资源有哪些)

阅读(16)

本文主要为您介绍python黑客pdf,内容包括python教程哪里下载,Python编程的19个资源,求黑客书籍资源。国内的话,知乎,网易,腾讯,搜狐,金山,豆瓣这些属于用Python比较知名的。大型的项目的话,网易的许多游戏,腾讯的某些网站,搜狐的邮箱

资讯

python3.4爬虫入门(如何入门Python爬虫)

阅读(1)

本文主要为您介绍python3.4爬虫入门,内容包括如何入门Python爬虫,python爬虫入门需要哪些基础,python爬虫自学要多久。可以先从简单的开始,在熟悉了Python语法后,学习用 urllib 和 urllib2 爬虫,使用 BeautifulSoup 分析结

资讯

python判定整数(怎样用python判断整数)

阅读(2)

本文主要为您介绍python判定整数,内容包括python怎么判断一个数是整数,python判断一个数是不是整数,python判断一个数是不是整数。import typesif type(var) in [types.IntType,types.LongType]: bodyelse

资讯

python画仪表(如何使用Python在屏幕上作画)

阅读(2)

本文主要为您介绍python画仪表,内容包括如何用python绘制各种图形,如何用Python绘制Circos图,如何使用Python在屏幕上作画。from turtle import *def curvemove():for i in range(200):right(1)forw

资讯

python写入文件编码格式(python2.7.4怎么指定格式编码的文本)

阅读(1)

本文主要为您介绍python写入文件编码格式,内容包括python写文件怎么写gbk编码的文件,python2.7.4怎么指定格式编码的文本,python2.7.4怎么指定格式编码的文本。要写入的数据本身就是byte串(u中文是中文字符串,中文是byte串),用二进制方式打开就

资讯

python小数点保留1位(如何在Python中保留小数)

阅读(2)

本文主要为您介绍python小数点保留1位,内容包括如何在Python中保留小数,Python中小数点的问题,怎么放弃后面位数,只保留前面两位搜狗,python中保留几位小数进行四舍五入的round函数自身的源代码是什么。f = lambda x, n: round(x, n - len(

资讯

python数据采集教程(如何用最简单的Python爬虫采集整个网站)

阅读(2)

本文主要为您介绍python数据采集教程,内容包括如何用最简单的Python爬虫采集整个网站,python做监控数据采集,怎么做.新手请教,如何学习爬虫技术抓取数据。在之前的文章中Python实现“维基百科六度分隔理论“之基础爬虫,我们实现了在一个网站