资源简介
代码片段和文件信息
# coding=utf-8
import urllib
import time
import re
#第一步 获取维基百科内容
#http://zh.wikipedia.org/wiki/程序设计语言列表
keyname=“程序设计语言列表“
temp=‘http://zh.wikipedia.org/wiki/‘+str(keyname)
content = urllib.urlopen(temp).read()
open(‘wikipedia.html‘‘w+‘).write(content)
print ‘Start Crawling pages!!!‘
#第二步 获取网页中的所有URL
#从原文中“0-9“到“参看“之间是A-Z各个语言的URL
start=content.find(r‘0-9‘)
end=content.find(r‘参看‘)
cutcontent=content[start:end]
link_list = re.findall(r“(?<=href=\“).+?(?=\“)|(?<=href=\‘).+?(?=\‘)“ cutcontent)
fileurl=open(‘test.txt‘‘w‘)
for url in link_list:
#字符串包含wiki或/w/index.php则正确url 否则A-Z
if url.find(‘wiki‘)>=0 or url.find(‘index.php‘)>=0:
fileurl.write(url+‘\n‘)
#print url
num=num+1
fileurl.close()
print ‘URL Successed! ‘num‘ urls.‘
#第三步 下载每个程序URL静态文件并获取Infobox对应table信息
#国家:http://zh.wikipedia.org/wiki/阿布哈茲
#语言:http://zh.wikipedia.org/wiki/Actionscript
info=open(‘infobox.txt‘‘w‘)
info.write(‘****************获取程序语言信息*************\n\n‘)
j=1
for url in link_list:
if url.find(‘wiki‘)>=0 or url.find(‘index.php‘)>=0:
#下载静态html
wikiurl=‘http://zh.wikipedia.org‘+str(url)
print wikiurl
language = urllib.urlopen(wikiurl).read()
name=str(j)+‘ language.html‘
#注意 需要创建一个country的文件夹 否则总报错No such file or directory
open(r‘language/‘+name‘w+‘).write(language) #写方式打开+没有即创建
#获取title信息
title_pat=r‘(?<=tle>).*?(?= tle>)‘
title_ex=re.compile(title_patre.M|re.S)
title_obj=re.search(title_ex language) #language对应当前语言HTML所有内容
title=title_obj.group()
#获取内容‘C语言 - 维基百科,自由的百科全书‘ 仅获取语言名
middle=title.find(r‘-‘)
info.write(‘【程序语言 ‘+title[:middle]+‘】\n‘)
print title[:middle]
#第四步 获取Infobox的内容
#标准方法是通过匹配
确认其内容,找与它最近的一个结束符号
#但此处分析源码后取巧实现
start=language.find(r‘
end=language.find(r‘
‘+title[:middle-1]) #减去1个空格
infobox=language[start:end]
#print infobox
#第五步 获取table中属性-属性值
if “infobox vevent“ in language: #防止无Infobox输出多余换行
#获取table中tr值
res_tr = r‘(.*?) ‘
m_tr = re.findall(res_trinfoboxre.S|re.M)
for line in m_tr:
#print unicode(line‘utf-8‘)
#获取表格第一列th 属性
res_th = r‘(.*?) ‘
m_th = re.findall(res_thlinere.S|re.M)
for mm in m_th:
#如果获取加粗的th中含超链接则处理
if “href“ in mm:
restr = r‘(.*?)‘
h = re.findall(restrmmre.S|re.M)
print unicode(h[0]‘utf-8‘)
info.write(h[0]+‘\n‘)
else:
#报错用str()不行 针对两个类型相同的变量
#TypeError: coer
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9757 2015-03-18 03:57 爬取维基百科\infobox.txt
文件 94247 2015-03-18 03:49 爬取维基百科\language\1 language.html
文件 31637 2015-03-18 03:49 爬取维基百科\language\10 language.html
文件 28733 2015-03-18 03:49 爬取维基百科\language\11 language.html
文件 29963 2015-03-18 03:49 爬取维基百科\language\12 language.html
文件 28461 2015-03-18 03:49 爬取维基百科\language\13 language.html
文件 28461 2015-03-18 03:49 爬取维基百科\language\14 language.html
文件 29895 2015-03-18 03:49 爬取维基百科\language\15 language.html
文件 30099 2015-03-18 03:49 爬取维基百科\language\16 language.html
文件 31249 2015-03-18 03:49 爬取维基百科\language\17 language.html
文件 64626 2015-03-18 03:49 爬取维基百科\language\18 language.html
文件 28529 2015-03-18 03:49 爬取维基百科\language\19 language.html
文件 24929 2015-03-18 03:49 爬取维基百科\language\2 language.html
文件 30170 2015-03-18 03:49 爬取维基百科\language\20 language.html
文件 111402 2015-03-18 03:50 爬取维基百科\language\21 language.html
文件 110463 2015-03-18 03:50 爬取维基百科\language\22 language.html
文件 30167 2015-03-18 03:50 爬取维基百科\language\23 language.html
文件 29555 2015-03-18 03:50 爬取维基百科\language\24 language.html
文件 28869 2015-03-18 03:50 爬取维基百科\language\25 language.html
文件 30031 2015-03-18 03:50 爬取维基百科\language\26 language.html
文件 28461 2015-03-18 03:50 爬取维基百科\language\27 language.html
文件 29963 2015-03-18 03:50 爬取维基百科\language\28 language.html
文件 31317 2015-03-18 03:50 爬取维基百科\language\29 language.html
文件 94247 2015-03-18 03:49 爬取维基百科\language\3 language.html
文件 31204 2015-03-18 03:50 爬取维基百科\language\30 language.html
文件 33126 2015-03-18 03:50 爬取维基百科\language\31 language.html
文件 35478 2015-03-18 03:50 爬取维基百科\language\32 language.html
文件 27324 2015-03-18 03:50 爬取维基百科\language\33 language.html
文件 30031 2015-03-18 03:50 爬取维基百科\language\34 language.html
文件 28529 2015-03-18 03:50 爬取维基百科\language\35 language.html
............此处省略45个文件信息
- 上一篇:easygui-0.96
- 下一篇:SVD实现代码
相关资源
- SVD实现代码
- easygui-0.96
- python坦克大战分步骤源码及素材
- django+mysql家具购物网站,包含部署教
- python新浪微博爬虫
- Python3.5.2的IDLE汉化版计算机等级考试
- 12306爬虫实现
- Python求解数独并输出求解过程
- python程序设计基础课件
- 西电python网络处理上机题答案
- VMD变分模态分解算法
- Python网络编程 3版 高清扫描版 完整中
- 使用python编写的打飞机游戏源码
- 计算24点python
- 扑克小游戏python代码
- Python黑客攻防入门.pdf
- 《Python语言程序设计基础第二版PDF+课
- Python-PySimpleGUI一个建立在tkinter之上简
- python3.5 百度ai人脸识别
- 中国裁判文书网爬虫
- python编程从入门到实践的案例和动手
- 编译原理词法分析器、语法分析器p
- python3实现的国密SM2+SM3
- 50G金融资料包python源码包
- Python爬虫相关书籍.zip
- Windows64下通过python调用海康SDK实现登
- Python-使用DeepFakes实现YouTube视频自动换
- python_web实战-源码
- Python-100-Days-master.zip
- python与量化投资-从基础到实战 配套资
评论
共有 条评论