爬虫

Crawler 不需要写代码的爬虫 不需要写正则的爬虫

青春壹個敷衍的年華 提交于 2020-04-06 21:46:59
Crawler V1.0.0 代码还没有优化 框架结构很简单 部分功能需要你们给我需求,我后期添加测试 操作指南 命令:java -jar Crawler.jar -[option] -v 爬虫的版本信息 -h 爬虫的帮助文档 -ct [url] 爬虫爬取一个网站测试 URL:测试的URL地址 -cw [url] [k,v] 测试信息抽取 | URL:测试的URL | [k,v] title,div[class=title] 如果有多个参数,使用#隔开 -ci [urllist] [k,v] <InputResult> 把抽取的信息规则保存xml中,可以使用SQL工具的导入向导导入到数据库或者转成其他格式| <InputResult> 保存结 果目录 -cl [url] [k,v] <InputUrllist> 把某URL的列表URL保存到文件中,可以用ci进行深入爬取 E.g 例子 1、-ci URL文件 爬虫规则 输出路径 2、执行java -jar crawler.jar -ci url.txt title,h1[id=artibodyTitle]#date,span[id=pub_date]#nodes,div[id=artibody] data.xml 然后我们可以使用SQL导入向导,用xml导入的方式,然后又可以转换为XML、TXT、EXCEL、WORD等多种格式

python3简单爬虫

允我心安 提交于 2020-04-06 19:51:54
刚接触爬虫,由于本科主要是学java的,因此之前从java入手爬虫。其实就是模拟http请求,然后将返回的html代码提取自己想要的数据。不过说起来很简单,作为小白,实现起来还是不容易阿。 之前稍微看了下一个java的框架源代码(还没全部看完,不过和还是会抽时间看看的),不过导师让我用python实现,因而转入python(导师很喜欢python的样子阿)。 说起python的环境搭建等等,我作为刚入python的小白其实还不清楚,直接下载了一个python3的源码,然后,照着操作安装了下,其实很简单,不多说了。 爬网页第一步就是要获取html代码 说来python获取html十分简单,只要几行就可以了,把我给震惊到了!!像java还是要写不少行的,再加上异常,代码看着还是挺臃肿的(不过习惯了)。 #coding=utf-8 import urllib.request def getHtml(url): response= urllib.request.urlopen(url) html = response.read() return html html = getHtml("http://www.baidu.com") print(html) 这里爬取了百度首页的html代码,没错,这是这么简单。 这里用了一个urllib.request模块,其实我觉得把java代码封装下

下载一个页面的所有 pdf 文件

怎甘沉沦 提交于 2020-03-24 07:52:14
3 月,跳不动了?>>> 要下载裘宗燕老师的 数据结构与算法(Python 语言) 讲义, 使用正则表达式 #!/usr/bin/env python import re import urllib.request as request baseurl = 'http://www.math.pku.edu.cn/teachers/qiuzy/ds_python/courseware/' with request.urlopen(baseurl) as response: html = response.read().decode('gb2312') pdfurls = re.findall(r'[^\"]*.pdf', html, re.I) for name in pdfurls: request.urlretrieve(baseurl+name, name) print('下载{}成功'.format(name)) 使用 Beautiful Soup #!/usr/bin/env python import urllib.request as request import bs4 baseurl = 'http://www.math.pku.edu.cn/teachers/qiuzy/ds_python/courseware/' with request.urlopen

python-38: 网页登陆流程

≯℡__Kan透↙ 提交于 2020-03-12 11:19:22
在开始之前,先跟大家说一个挺有趣的事情,我在网上查资料的时候,无意中搜索到一个视频,视频的老师在开头讲了一段蛮有意思的话,他说,有好多的同学跟我反映说认真学习了基础教程,认真看了书并且都看懂了书里面的代码,但是等到自己写的时候还是编写不出,最后老师的结论是,因为这些人没有编程思想。作为一个同样也是自学的新手来说,这句话get到我的点了,简直不能再对 既然是模拟登录,那么现在先对自己提出问题,我最想知道的事情有什么 我最先想知道的是网站登录的流程是怎么样的 如果要是有时间,并且想真正了解网络基础的话,给大家推荐一本书《HTTP权威指南》 在这里我就结合网上查到的资料简单的给大家讲解一些 我们在爬虫基础知识那一小节里面已经简单的讲了浏览网页的过程,现在我们再来回顾一下 "在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如http://image.baidu.com/,我们会看到几张的图片以及百度搜索框 这个过程其实就是用户输入网址之后,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,响应客户端的请求并且发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了" 这里面重要的信息是客户端发送请求,服务器响应客户端的请求,我们通过浏览器的工具看看是不是这样,还是F12 我只是随便点了一个GET的数据来看的

python-76:BS4实例2:公务员时间

大憨熊 提交于 2020-03-08 17:11:16
最近一段时间,我们组长每天来上班的第一件事情就是从前台拿当天的报纸到座位上看,还打趣的说,这像不像公务员上班时候的样子 当然,这并不是调侃或者实力嘲讽,实际上,每天半个小时左右的休闲时间对程序员来说还是很重要的,但是,呵呵,对于我这样的技术渣来说还是需要充分利用每一点时间来不断学习,提升自己,所以,对于这种行为,我只能看看就好。 但是这却也让我萌生了一个想法,我能不能编写一个程序,获取每天的新闻来进行浏览,遇到自己喜欢的文章能够下载到本地,作为收藏和日后的学习 呵呵,"日后",为什么听着这么别扭 这确实是一个很不错的想法,但关键是我们需要找到一个好的网站,我一开始选择的是"人民日报网",但是后面想想不对,这样很可能会被查水表,所以只能放弃,其实那个代码已经写了一半了,后来我想,如果能够获取关于编程方面的文章,这既能了解相关的一些动态,又能将感兴趣的文章下载下来日后再进一步的学习,然后经过多方寻找和对比,我发现伯乐在线这个网站里面关于编程的内容很多,而且经常更新,所以,就是它了,毕竟说句实话,关于这类型的文章和论坛在中国真的不是很多,所以我最近一直得看英文文档, 接着得给这个实例起一个响亮的名字,恩,就叫"公务员时间"吧 BS4实例2:公务员时间 实例目标: 找到每天更新的文章,并将标题列举出来 可以按标题序号选择要阅读的文章,对于感兴趣的文章,还可以下载下来 设置交互模式

python-58: cookies和opener的进一步理解

对着背影说爱祢 提交于 2020-03-06 10:46:48
本来写到这里我认为我们这个实例已经讲解完成了,但是当我回过头看之后,发现之前一些比较模糊或者不是很确定的事情,在这里得到了一些新的的认识,所以觉得有必要在这里记录一下 为什么登陆的源码中要使用函数获取cookies 我记得我在第40小节的时候比较了几种方法获取的cookies,最后我们选择了firebug工具获取的cookies来直接登陆,当时也说过使用代码获取的cookies会受到限制,但是,我们在模拟登陆中,对于cookies的我们还是使用代码来获取并且处理,为什么要这样做呢?不是说会受到限制吗? 首先第一个原因是我们除了这个程序没有别的程序可以实现处理cookies的功能了,我们要在代码中模拟登陆的整个流程,这中间肯定是不能断开然后再去浏览器取cookies的,而python中似乎也只有这个库能实现cookies的处理,但实际上,我一直对这个问题耿耿于怀,所以,现在我们就来对比看看这几个cookies有什么区别,首先还是先贴上上次的源码 #!/usr/bin/env python # -*- coding:UTF-8 -*- __author__ = "217小月月坑" import urllib2 import cookielib #声明一个CookieJar对象实例来保存cookie cookie = cookielib.CookieJar()

没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)

不羁的心 提交于 2020-03-02 06:27:09
由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个“段友”的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不是打广告的,没收广告费的) 同时,之前同事也发了一个贴吧的段子聚居地,客官稍等,马上奉上连接: 段友之家 https://tieba.baidu.com/f?ie=... 然后呢,看到上面,确实好多段友在上面,于是乎,我就想爬取他们的图片和小视频,就有了这篇文章的主题: 其实吧,用Python爬取网站数据是最基础的东西,也不难,但是我还想分享给大家,一起学习和交流。 爬取这些网站里的数据主要用的模块是bs4、requests以及os,都是常用模块 大概思路就是通过requests模块请求网页html数据,然后通过bs4模块下的BeautifulSoup分析请求的网页,然后通过css查找器查找内涵段子的图片以及小视频的地址,主要实现代码如下: def download_file(web_url): """获取资源的url""" # 下载网页 print('正在下载网页: %s...' % web_url) result = requests.get(web_url) soup = bs4.BeautifulSoup(result.text, "html.parser") # 查找图片资源 img_list

Python 爬虫工具列表

时光怂恿深爱的人放手 提交于 2020-03-02 04:14:26
本文转载自伯乐在线: http://python.jobbole.com/82633/ 这个列表包含与网页抓取和数据处理的Python库 网络 通用 urllib -网络库(stdlib)。 requests -网络库。 grab - 网络库(基于pycurl)。 pycurl - 网络库(绑定 libcurl )。 urllib3 - Python HTTP库,安全连接池、支持文件post、可用性高。 httplib2 - 网络库。 RoboBrowser - 一个简单的、极具Python风格的Python库,无需独立的浏览器即可浏览网页。 MechanicalSoup -一个与网站自动交互Python库。 mechanize -有状态、可编程的Web浏览库。 socket - 底层网络接口(stdlib)。 Unirest for Python - Unirest是一套可用于多种语言的轻量级的HTTP库。 hyper - Python的HTTP/2客户端。 PySocks - SocksiPy更新并积极维护的版本,包括错误修复和一些其他的特征。作为socket模块的直接替换。 异步 treq - 类似于requests的API(基于twisted)。 aiohttp - asyncio的HTTP客户端/服务器(PEP-3156)。 网络爬虫框架 功能齐全的爬虫 grab -

初学Python:写码时应该缩进使用 tab 还是空格?

有些话、适合烂在心里 提交于 2020-03-01 02:58:42
对于程序员来说,其实Tab和空格远远不只是“立场”问题那么简单。 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了。空格不会出现这个问题,因为空格就占一个字符的位置。 众所周知,Tab在ASCII码中,编码是9,而空格是32。这也就是说,当我们按下一个Tab的时候,即使它看起来就是8个空格(或者4个空格,不同的环境下,Tab可能显示的效果不同),对于电脑来说,却是完全不一样的东西。这也意味着,对于用字符来描述过程的代码来说,极有可能会是决定性的差异。 尤其是对于一门用空格缩进来区分代码层次的语言——Python。 我们来看一段代码。 class MyForm(Form): value1 = StringField('value1') value2 = StringField('value2') value3 = StringField('value3') #这行用的是Tab缩进 submit = SubmitField('Submit') learn python = 'QQ group:725479218' 看起来这个value3变量和其他的变量没有什么不同,然而却出现了这样的报错——缩进错误。 value3 = StringField('value3') IndentationError: unexpected

python-60:Python 爬虫的工具列表

主宰稳场 提交于 2020-02-29 09:03:55
本文转载自伯乐在线: http://python.jobbole.com/82633/ 这个列表包含与网页抓取和数据处理的Python库 网络 通用 urllib -网络库(stdlib)。 requests -网络库。 grab - 网络库(基于pycurl)。 pycurl - 网络库(绑定 libcurl )。 urllib3 - Python HTTP库,安全连接池、支持文件post、可用性高。 httplib2 - 网络库。 RoboBrowser - 一个简单的、极具Python风格的Python库,无需独立的浏览器即可浏览网页。 MechanicalSoup -一个与网站自动交互Python库。 mechanize -有状态、可编程的Web浏览库。 socket - 底层网络接口(stdlib)。 Unirest for Python - Unirest是一套可用于多种语言的轻量级的HTTP库。 hyper - Python的HTTP/2客户端。 PySocks - SocksiPy更新并积极维护的版本,包括错误修复和一些其他的特征。作为socket模块的直接替换。 异步 treq - 类似于requests的API(基于twisted)。 aiohttp - asyncio的HTTP客户端/服务器(PEP-3156)。 网络爬虫框架 功能齐全的爬虫 grab -