关键词:
网页爬虫常用来在互联网上爬取感兴趣的页面或文件,结合数据处理与分析技术可以得到更深层次的信息。下面的代码实现了网页爬虫,可以抓取指定网页中的所有链接,并且可以指定关键字和抓取深度。
1 import sys
2 import multiprocessing
3 import re
4 import os
5 import urllib.request as lib
6
7 def craw_links(url,depth,keywords,processed):
8 ‘‘‘
9 :param url: 要爬取的网址
10 :param depth: 爬取深度
11 :param keywords: 要爬取的关键字组成的元组
12 :param procdssed: 进程池
13 :return:
14 ‘‘‘
15
16 contents = []
17
18 if url.startswith((‘http://‘,‘https://‘)):
19 if url not in processed:
20 #make this url as processed
21 processed.append(url)
22 else:
23 #avoid processing the same url again
24 return
25
26 print(‘Crawing ‘ + url + ‘...‘)
27 fp = lib.urlopen(url) #向url 发出请求
28
29 #Python3 returns bytes,so need to decode
30 contents_decoded = fp.read().decode(‘utf-8‘)
31 fp.close() #至此已经读取爬取的网页文本内容
32
33 pattern = ‘|‘.join(keywords)
34
35 #if this page contains certain keywords,save it to a file
36 flag = False
37 if pattern:
38 searched = re.search(pattern,contents_decoded) #用正则表达式去返回的网页文本中匹配关键字
39 else:
40 #if the keywords to filter is not given,save current page
41 flag = True
42
43 if flag or searched:
44 with open(‘craw\\‘ + url.replace(‘:‘,‘_‘).replace(‘/‘,‘_‘),‘w‘) as fp:
45 fp.writelines(contents)
46
47 #find all the links in the current page
48 links = re.findall(‘href="(.*?)"‘,contents_decoded)
49
50 #craw all links in the current page
51 for link in links:
52 #consider the relative path
53 if not link.startswith((‘http://‘,‘https://‘)):
54 try:
55 index = url.rindex(‘/‘)
56 link = url[0:index+1] + link
57 except:
58 pass
59 if depth > 0 and link.endswith((‘.htm‘,‘.html‘)):
60 craw_links(link,depth-1,keywords,processed)
61
62 if __name__ == ‘__main__‘:
63 processed = []
64 keywords=(‘datetime‘,‘KeyWord2‘)
65 if not os.path.exists(‘craw‘) or not os.path.isdir(‘craw‘):
66 os.mkdir(‘craw‘)
67 craw_links(r‘https://docs.python.org/3/library/index.html‘,1,keywords,processed)
网页爬虫之二手车价格爬虫(代码片段)
今天学习了爬虫技术简单来说就是利用pyhon连续的访问网页,自动的将网页中我们用到的信息存储起来的过程。需要我们的看懂简单的网页代码,能够写一些简单的python语句下面我们举一个一个需要两步爬虫的例子:... 查看详情
网页爬虫之二手车价格爬虫(代码片段)
今天学习了爬虫技术简单来说就是利用pyhon连续的访问网页,自动的将网页中我们用到的信息存储起来的过程。需要我们的看懂简单的网页代码,能够写一些简单的python语句下面我们举一个一个需要两步爬虫的例子:... 查看详情
爬虫系列2.2爬虫基础2-网页结构进阶(代码片段)
...台回复python金融基础获取源代码2.2.1HTML基础1-我的第一个网页HTML(HyperTextMarkupLanguage)是一种用于写这些框架的的标准标记语言,这一小节主要就是讲如何利用它来进行网页搭建。2.2.2代码编辑器荐一款代码编辑器:Notepad+... 查看详情
爬虫基础——网页(代码片段)
前言 爬虫要爬取的信息主要来自于网页加载的内容,有必要了解一些网页的知识。 当我们在浏览器网址栏输入一个网址——URL,经过TCP/IP协议簇的处理,这个网址请求的信息就被发送到URL对应的服务器,接着... 查看详情
scrapy爬虫框架-爬取多个网页(代码片段)
scrapy爬虫框架(四)爬取多个网页思路:通过判断句子控网站中,下一页是否还有a标签来获取网址,拼接后继续爬取,最终写入json文件中。juziSpider.py#-*-coding:utf-8-*-importscrapyfromjuzi.itemsimportJuziItemclassJuzispiderSpider(scrapy.Spider):name='... 查看详情
网页简介(代码片段)
有人说“互联网中有50%以上的流量是爬虫”,第一次听这句话也许你会觉得这个说法实在太夸张了,怎么可能爬虫比用户还多呢?毕竟会爬虫的相对与不会爬虫的简直少之又少。但是很多爬虫工程师或者反爬虫工程师讲了实话:... 查看详情
读取网页的方法-爬虫学习(代码片段)
1、读取全部网页1#encoding:utf-823importurllib24defdownload1(url):5returnurllib2.urlopen(url).read()#读取全部网页67url="http://www.baidu.com"#urlopen只能处理http不能处理https8printdownload3(url) 2、读取每一行的数据,压入列表1 查看详情
9.3.2qpainter坐标系统转换示例(代码片段)
...统转换示例 1.使用translate函数实现坐标平移变换下面代码使用translate函数分别指定了不同的坐标位置作为当前绘图的原点坐标,并绘制了一个矩形和一个圆。观察矩形和圆绘制的位置即可明白translate函数用途。voidWidget::paintEv... 查看详情
python爬虫编程思想:网页基础(代码片段)
...爬虫的基本原理 整个互联网拥有数以亿计的网页,这些网页的样式千差万别,但不管是什么样的网页,都离不开Web三剑客对其做的贡献,它们是HTML、CSS和JavaScript。这 查看详情
9.3域名解析与网页爬虫(代码片段)
...rllib.response、urllib.parse和urllib.error4个模块,很好地支持了网页内容读取功能。 下面的代码演示了如何读取并显示指定网页的内容。1importurllib.request23fp=urllib.request.urlopen(r‘http://www.baidu.com‘)45p 查看详情
网页爬虫获取课程信息(代码片段)
...ithub链接: 点击打开链接用Python学习制作一个简单的网页爬虫:1.安装pycharm是一个非常好用的IDE~,安装地址在:点击打开链接2.学习一些常用的正则表达式符号和方法。3.运用正则表达式,观察网页源代码ÿ... 查看详情
理解爬虫原理(代码片段)
...网站并提取数据的自动化程序百科:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂... 查看详情
第一个爬虫和设计(代码片段)
一、网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模... 查看详情
pythonscrapy实现网页爬虫(代码片段)
Pythonscrapy安装和网页爬虫功能实现现在组内有个工作就是维护恶意URL库,然后这个维护工作,主要是通过从几个会发布恶意URL地址的网站获取恶意网址,每次都得花费半天,很乏味的事情。所以就想到能否用个爬... 查看详情
“反爬虫”与“反反爬虫”(代码片段)
反爬虫:不返回网页:如不返回内容和延迟网页返回时间返回数据非目标网页:如返回错误页、返回空白页和爬取多页时均返回同一页增加获取数据的难度,:如登陆才可查看和登陆时设置验证码不返回网页... 查看详情
leetcode(多线程)-1242.多线程网页爬虫(代码片段)
题目链接:点击打开链接题目大意:略。解题思路:略。相关企业DatabricksAC代码/***//ThisistheHtmlParser'sAPIinterface.*//Youshouldnotimplementit,orspeculateaboutitsimplementation*interfaceHtmlParser*publicList& 查看详情
爬虫原理与数据抓取-----(了解)通用爬虫和聚焦爬虫(代码片段)
...ogle、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。通用搜索引擎(SearchEngine)工作原理通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于 查看详情
14vcs爬虫(代码片段)
1、聚焦爬虫代理浏览器上网网页的特点网页都有自己唯一的url网页内容都是HTML结构使用的都是HTTP,HTTPS协议爬取步骤:给一个url写程序,模拟浏览器方位url解析内容环境:Windows环境、Linux环境python3.664位编辑工具,vscode,sublime,py... 查看详情