python提取页面内url列表的方法

yipeiwu_com7年前Python基础

本文实例讲述了python提取页面内url列表的方法。分享给大家供大家参考。具体实现方法如下:

from bs4 import BeautifulSoup
import time,re,urllib2
t=time.time()
websiteurls={}
def scanpage(url):
  websiteurl=url
  t=time.time()
  n=0
  html=urllib2.urlopen(websiteurl).read()
  soup=BeautifulSoup(html)
  pageurls=[]
  Upageurls={}
  pageurls=soup.find_all("a",href=True)
  for links in pageurls:
    if websiteurl in links.get("href") and links.get("href") not in Upageurls and links.get("href") not in websiteurls:
      Upageurls[links.get("href")]=0
  for links in Upageurls.keys():
    try:
      urllib2.urlopen(links).getcode()
    except:
      print "connect failed"
    else:
      t2=time.time()
      Upageurls[links]=urllib2.urlopen(links).getcode()
      print n,
      print links,
      print Upageurls[links]
      t1=time.time()
      print t1-t2
    n+=1
  print ("total is "+repr(n)+" links")
  print time.time()-t
scanpage("http://news.163.com/")

希望本文所述对大家的Python程序设计有所帮助。

相关文章

Python函数参数类型*、**的区别

刚开始学习python,python相对于java确实要简洁易用得多。内存回收类似hotspot的可达性分析, 不可变对象也如同java得Integer类型,with函数类似新版本C++...

Python实现将n个点均匀地分布在球面上的方法

Python实现将n个点均匀地分布在球面上的方法

本文实例讲述了Python实现将n个点均匀地分布在球面上的方法。分享给大家供大家参考。具体分析如下: 最近工作上遇到一个需求,将10000左右个点均匀地分布在一个球面上。所谓的均匀,即相...

Python Pandas实现数据分组求平均值并填充nan的示例

Python Pandas实现数据分组求平均值并填充nan的示例

Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值。 DataFrame数据格式 fillna方式实现 groupby方式实现 DataFrame数...

对Python中range()函数和list的比较

使用Python的人都知道range()函数和list很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节。这里记录一下range()和list。 >>>...

python3 批量获取对应端口服务的实例

思路懒得写了. 依赖python-nmap,先在电脑上装nmap,不然用不了.openpyxl实际上没有用到,可以不安装. makeEx()没用到,懒得删了. #依赖python-n...