import urllib, urllib2, cookielib
from HTMLParser import HTMLParser
import sys reload(sys)
sys.setdefaultencoding('utf8') class WebParser(HTMLParser):
def __init__(self, links, path):
HTMLParser.__init__(self)
self.links = links
self.path = path def handle_starttag(self, tag, attrs):
if tag == 'a':
if len(attrs) == 0:
pass
else:
for (key, val) in attrs:
if key == 'href':
if val.startswith('http'):
self.links.add(val)
elif val.startswith('/'):
self.links.add(self.path + val) class Crawl:
def __init__(self):
self.path = 'http://www.baidu.com'
self.cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(self.cookie)
self.opener = urllib2.build_opener(handler) def open(self, path):
self.response = self.opener.open(path) def showCookie(self):
for item in self.cookie:
print 'Name = ' + item.name
print 'value = ' + item.value def showResponse(self):
print self.response.read() def getAllUrl(self, links, path):
try:
self.open(path)
res = self.response.read()
parser = WebParser(links, path)
parser.feed(res)
parser.close()
except Exception, e:
print e def crawl(self):
src_links = set()
result_links = set()
self.getAllUrl(src_links, self.path)
n = 200
while len(src_links) != 0 and n > 0:
link = src_links.pop()
if link in result_links:
pass
result_links.add(link)
self.getAllUrl(src_links, link)
n -= 1
print n return result_links | src_links c = Crawl()
rlt = c.crawl()
for link in rlt:
print link

提取网址的python练习的更多相关文章

  1. (学习网址)Python 自动化测试

    1.Python自动化测试地址 http://www.wtoutiao.com/author/python-selenium.html 2.unittest参考网址: 1)python自动化测试报告H ...

  2. 正则提取关键字符-python代码实现

    原文地址:http://www.bugingcode.com/blog/python_re_extraction_key.html 关于python的正则使用在以前的文章中 http://www.bu ...

  3. 基于 RTF specification v1.7 的 RTF 文件解析及 OLE 对象提取(使用 Python 开发)

    0x01 Office RTF 文件介绍 RTF 文件也称富文本格式(Rich Text Format, 一般简称为 RTF),意为多文本格式是由微软公司开发的跨平台文档格式.大多数的文字处理软件都能 ...

  4. [Python]爬取首都之窗百姓信件网址id python 2020.2.13

    经人提醒忘记发网址id的爬取过程了, http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?original ...

  5. javascript在字符串中提取网址并替换成超链接

    var str = " http://wasmip.baidu.com.cn/mip/km/archives/km_archives_main/kmArchivesMain.do?metho ...

  6. Python使用xslt提取网页数据

    1,引言 在Python网络爬虫内容提取器一文我们详细讲解了核心部件:可插拔的内容提取器类gsExtractor.本文记录了确定gsExtractor的技术路线过程中所做的编程实验.这是第一部分,实验 ...

  7. asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例

    无论你用什么语言,正则表达式的处理方法都是非常灵活.高效的,尤其是对某些字符串的抓取.过滤方面,更显其优势. 正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的 ...

  8. Python基于共现提取《釜山行》人物关系

    Python基于共现提取<釜山行>人物关系 一.课程介绍 1. 内容简介 <釜山行>是一部丧尸灾难片,其人物少.关系简单,非常适合我们学习文本处理.这个项目将介绍共现在关系中的 ...

  9. 【Python】批量查询-提取站长之家IP批量查询的结果v1.0

    0 前言 写报告的时候为了细致性,要把IP地址对应的地区给整理出来.500多条IP地址找出对应地区复制粘贴到报告里整了一个上午. 为了下次更好的完成这项重复性很高的工作,所以写了这个小的脚本. 1 使 ...

随机推荐

  1. SpringBoot Jar应用Linux后台部署执行

    nohup java -jar shop-h5.jar > log_h5.file 2>&1 &

  2. U盘安装Linux CentOS 6.8 系统

    1.插入U盘在服务器中的USB接口: 2.选择启动的U盘进入装系统的页面: 3.选择English,按ok: 4.选UEFI:SanDisk Cruzer Edge 1.26 5.选 us 按 ok ...

  3. 2019-8-31-C++-驱动开发-error-LNK2019-unresolved-external-symbol-__CheckForDebuggerJustMyCode-referenced-...

    title author date CreateTime categories C++ 驱动开发 error LNK2019 unresolved external symbol __CheckFor ...

  4. springmvc:配置解决中文乱码的过滤器

    在web.xml中配置以下内容: <!--配置解决中文乱码过滤器--> <filter> <filter-name>characterEncodingFilter& ...

  5. poweroj1745: 餐巾计划问题

    传送门 最小费用最大流. 每天拆成两个点,i表示用完的餐巾,i+n表示干净的餐巾. s向i连容量为ri费用为0的边,表示每天用脏的ri条餐巾. i+n向t连容量为ri费用为0的边,表示每天需要用ri条 ...

  6. H5C3--边框阴影box-shadow

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. char类型和int类型之间的转换

    在视屏课程第二章里,我们已经学习了一些常用的数据类型转换.然而,有一些时候我们会经常会遇到将char类型转换成int类型,或者需要将int类型转换为char类型的情况. 这里,我们来探讨一下这种不常用 ...

  8. js 禁止复制粘贴

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格 ...

  9. angular4 动态创建组件 vs 动态创建模板

    实现  模拟场景:页面上"帮助"按钮的点击触发帮助文档的弹出框,且每个页面的帮助文档不一样 因此弹出框里的帮助文档是一个动态模板而不是动态组件 以下comp均代表Type类型的动态 ...

  10. session失效刷新后登录页面嵌入在iframe中的解决办法

    在login页面中添加以下一段代码:   var _topWin = window;  while (_topWin != _topWin.parent.window) {       _topWin ...