zoukankan      html  css  js  c++  java
  • python爬取新浪新闻

    一、这里提前解释说明:

    urlretrieve(url, filename=None, reporthook=None, data=None)

    参数filename指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
    参数reporthook是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该
    回调,我们可以利用这个回调函数来显示当前的下载进度。
    参数data指post导服务器的数据,该方法返回一个包含两个元素的(filename, headers)
    元组,filename 表示保存到本地的路径,header表示服务器的响应头

     1 #爬取新浪新闻
     2 import urllib.request
     3 import re 
     4 data=urllib.request.urlopen(“http://news.sina.com.cn/”).read()
     5 data2=data.decode(“utf-8”,”ignore”)
     6 #"ignore"忽略参数出现的错误
     7 pat='href="(http://news.sina.com.cn/.*?)">'
     8 allurl=re.compile(pat).findall(data2)
     9 for i in range(0,len(allurl)):
    10     try:
    11         print(""+str(i)+"次爬取")
    12         thisurl=allurl[i]
    13         file="F:/python/sinanews"+str(i)+".html"
    14         urllib.request.urlretrieve(thisurl,file)
    15         print("成功")
    16     except urllib.error.URLError as e:
    17         if hasattr(e,"code"):
    18            print(e.code)
    19         if hasattr(e,"reason"):
    20            print(e.reason)

    若有疑问 可联系博主进一步探讨python小知识

  • 相关阅读:
    C语言运算符优先级和口诀
    跨域问题的解决方案 php
    浅谈跨域攻击及预防
    浅析Websocket--PHP
    linux下的删除目录和文件的方法
    python魔法方法
    双指针
    python常用模块
    python三大器
    对闭包的误区
  • 原文地址:https://www.cnblogs.com/du1269038969/p/9652920.html
Copyright © 2011-2022 走看看