因为项目需要需要做定向采集企业网站文章

这里是通用采集URL地址(因为不能对每个网站写采集规则这里就是用了通用化)       采集文章方法就不公布了

#!/usr/local/bin/python
#coding=utf8
#网站定向简易采集
#QQ:29295842
import get_post
import re
import re, sys, time
import os.path as osp
#from urlparse import urlparse
from urllib.parse import urlparsedef getUrl(url):  #采集print(url)open_url=[]  #已经采集d_url=[]   #等待采集i=0open_url,d_url=getOneUrl(url,open_url,d_url)  #采集初始化while True: #死循环遍历if(len(d_url)==0):break #跳出xx_url=d_url[0]del d_url[0]if not d_url in open_url:   #print(colour)open_url,d_url=getOneUrl(xx_url,open_url,d_url)  #采集单页open_url=list(set(open_url))d_url=list(set(d_url))print(xx_url,"===",len(open_url),"===",len(d_url))#d_url.remove(url)  #删除元素def getOneUrl(url,open_url,d_url):  #采集单页parts = urlparse(url)  #URL地址拆解open_url.append(url)  #已经采集get_bool,html=get_post.get_web(url,ua="",timeout=10)href_arr=[]if(get_bool):format = formatURL(clearBlank(html),url)  # 格式化html代码if(format==""):return open_url,d_urlurls = re.findall(r'''(<a[^>]*?href="([^"]+)"[^>]*?>)|(<a[^>]*?href='([^']+)'[^>]*?>)''',format,re.I)if urls != None :  # 取出所有的连接for regs in urls:  # 得到一个单一的urlsUrl = en2chr(regs[1].strip())    #if sUrl.find(parts.netloc):if re.search('http(.*?)/'+parts.netloc+'/(.*?)',sUrl,re.I):href_arr.append(sUrl)if(len(href_arr)>=1):   #print(href_arr)href_arr_x=list(set(href_arr))  #数组去重   #print(href_arr_x)for colour in href_arr_x:    #print(colour)if not colour in open_url:   #print(colour)d_url.append(colour)   #等待采集# print(open_url)# print(d_url)return open_url,d_url#==================================================================
# 替换实体为正常字符
def en2chr(enStr):return enStr.replace('&amp;','&')# 清除html代码里的多余空格
def clearBlank(html):if len(html) == 0 : return ''html = re.sub('\r|\n|\t','',html)while html.find("  ")!=-1 or html.find('&nbsp;')!=-1 :html = html.replace('&nbsp;',' ').replace('  ',' ')return html# 格式化url
def formatURL(html,url):try:urls = re.findall('''(<a[^>]*?href="([^"]+)"[^>]*?>)|(<a[^>]*?href='([^']+)'[^>]*?>)''',html,re.I)if urls == None : return htmlfor regs in urls :html = html.replace(regs[0],matchURL(regs[0],url))return htmlexcept:return ""# 格式化单个url
def matchURL(tag,url):try:urls = re.findall('''(.*)(src|href)=(.+?)( |/>|>).*|(.*)url\(([^\)]+)\)''',tag,re.I)if urls == None :return tagelse :if urls[0][5] == '':urlQuote = urls[0][2]else:urlQuote = urls[0][5]if len(urlQuote) > 0 :cUrl = re.sub('''['"]''','',urlQuote)else :return tagurls = urlparse(url); scheme = urls[0]if scheme!='' : scheme+='://'host = urls[1]; host = scheme + hostif len(host)==0 : return tagpath = osp.dirname(urls[2])if path=='/' : path = '';if cUrl.find("#")!=-1 : cUrl = cUrl[:cUrl.find("#")]# 判断类型if re.search('''^(http|https|ftp):(//|\\\\)(([\w/\\\+\-~`@:%])+\.)+([\w/\\\.\=\?\+\-~`@':!%#]|(&amp;)|&)+''',cUrl,re.I) != None :# http开头的url类型要跳过return tagelif cUrl[:1] == '/' :# 绝对路径cUrl = host + cUrlelif cUrl[:3]=='../' :# 相对路径while cUrl[:3]=='../' :cUrl = cUrl[3:]if len(path) > 0 :path = osp.dirname(path)elif cUrl[:2]=='./' :cUrl = host + path + cUrl[1:]elif cUrl.lower()[:7]=='mailto:' or cUrl.lower()[:11]=='javascript:' :return tagelse :cUrl = host + path + '/' + cUrlR = tag.replace(urlQuote,'"' + cUrl + '"')return Rexcept:return ""
#==================================================================if __name__=="__main__":#getOneUrl("http://www.dzrpump.com/")  #采集初始化getUrl("http://www.dzrpump.com/")   #遍历

python 一个简单的网站采集相关推荐

  1. 直播系统源码python 一个简单的网站采集

    #!/usr/local/bin/python #coding=utf8 #网站定向简易采集 #QQ:29295842 import get_post import re import re, sys ...

  2. 使用 Python 的 flask 架构搭建一个简单web网站

    使用 Python 的 flask 架构搭建一个简单web网站 1.flask最简单框架,返回hello world: from flask import * app = Flask(__name__ ...

  3. 自己动手搭建一个简单的网站

    我准备搭建一个属于自己的网站,一方面是了解建站的知识,另一个方面是为了测试Http请求相关的内容. 建站资料 下面是建站需要的资料: 服务器:也就是高级一点的电脑,它主要用来存放网页数据: web服务 ...

  4. Ubuntu 18.04 安装 nginx 并搭建一个简单的网站

    目录 一.安装 nginx 二.设置 nginx 服务器模块 三.总结 四.参考资料 尽你所学(采用 html.或 CSS.或 Javascript 等)完成一个静态网页,比如制作一个简单的个人介绍网 ...

  5. 用python实现简单的网站信息更新自动通知

    用python实现简单的网站信息更新自动通知 因为需要及时收到学校研究生网站的消息,每过一小段时间去网站看耗费精力,且不一定能及时的收到消息,所以萌生了用程序定时检测网站是否更新的想法.代码地址点这里 ...

  6. 使用Android studio做一个简单的网站APP

    1.首先创建一个空白Android项目 2.然后打开项目,切换为Android视图,这时候会看到三个文件夹,分别是manifests.java.res.首先修改res/layout下的activity ...

  7. html抓取文章,网页抓取工具:一个简单的文章采集示例

    通过采集网页抓取工具火车采集器官网的faq为例来说明采集器采集的原理和过程. 本例以 http://faq.locoy.com/qc-12.html 演示地址,以火车采集器V9为工具进行示例说明. ( ...

  8. 一个简单的网站该怎样建设

    如何建设一个简单的网站?当你接触建站的时候你肯定会想我要不要做一个网站来玩玩.但也会有担心这个网站好不好建,该如何建呢?其实建一个简单网站很简单的.做好下面几个就好了. 1.目的要明确:做网站当然要先 ...

  9. Python后端---使用Django+Mysql搭建一个简单的网站

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.项目搭建 前期准备 命令行创建项目和app Django项目配置文件说明 使用数据库 编写业务逻辑 配置url主路 ...

最新文章

  1. MakeFile 文件的作用
  2. sharepoint页面嵌入_在其他系统Iframe中显示SharePoint 页面
  3. leetcode -- Single Number
  4. 利用DroidCam将手机摄像头打造成电脑摄像头
  5. 鸿蒙系统和鸿鹄818,华为智慧屏将应用鸿蒙系统,搭载海思鸿鹄818芯片
  6. 《老司机,带带我》之考驾照
  7. excel 添加换行符,去除换行符:
  8. 智慧水务信息化系统的意义
  9. 每日一篇系列---CSS3实现下雨动效
  10. matplotlib中文显示以及设置图片大小
  11. Go开发 之 容器(数组Array、切片slice、映射map、列表list)
  12. HanLP汉语言分析框架
  13. 专访:黑客段子手“呆子不开口”| 宅客故事
  14. html布局的wrap方法,wrap_content设置一个视图的尺寸为wr
  15. Android电源管理介绍
  16. 数据可视化-设计原则
  17. 解读微信终端开源背后的故事
  18. html5 head标签
  19. Oracle SQL及格率转换为百分比
  20. [python] 解压7z格式 压缩包 无密码

热门文章

  1. 高考放榜季 | 知道创宇全方位保障教育政务网站安全可用
  2. 知道创宇赵伟乌镇演讲:以云护云、以云治云,构建云端安全治理体系
  3. 随机生成游戏用户昵称(nodejs版本)(含机器人头像,金币等)
  4. 助教日志_【沈阳航空航天大学软件工程 1,2班】期末排行
  5. Facebook联手纽约大学,要把核磁共振成像时间缩短10倍
  6. TREG(Transformed Regression for Accurate Tracking)
  7. 国家知识产权局宣告易百珑自发电专利权有效
  8. C语言计算BMI值,一看就会
  9. 静态html使用js发送邮件,科技常识:html实现邮箱发送邮件_js发送邮件至指定邮箱功能...
  10. 手机APP如何访问局域网服务器