首页 > 其他分享 >网络爬虫初级

网络爬虫初级

时间:2023-05-31 23:37:55浏览次数:44  
标签:__ http urllib2 爬虫 urllib 网络 初级 html print


首先,我们来看一个Python抓取网页的库:urllib或urllib2。


那么urllib与urllib2有什么区别呢?

可以把urllib2当作urllib的扩增,比较明显的优势是urllib2.urlopen()可以接受Request对象作为参数,从而可以控制HTTP Request的header部。

做HTTP Request时应当尽量使用urllib2库,但是urllib.urlretrieve()函数以及urllib.quote等一系列quote和unquote功能没有被加入urllib2中,因此有时也需要urllib的辅助。


urllib.open()这里传入的参数要遵循一些协议,比如http,ftp,file等。例如:


urllib.open('http://www.baidu.com')

urllib.open('file:D\Python\Hello.py')


现在有一个例子,下载一个网站上所有gif格式的图片。那么Python代码如下:


import re
import urllib

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

def getImg(html):
    reg = r'src="(.*?\.gif)"'
    imgre = re.compile(reg)
    imgList = re.findall(imgre,html)
    print imgList
    cnt = 1
    for imgurl in imgList:
        urllib.urlretrieve(imgurl,'%s.jpg' %cnt)
        cnt += 1

if __name__ == '__main__':
    html = getHtml('http://www.baidu.com')
    getImg(html)



根据上面的方法,我们可以抓取一定的网页,然后提取我们所需要的数据。


实际上,我们利用urllib这个模块来做网络爬虫效率是极其低下的,下面我们来介绍Tornado Web Server。

Tornado web server是使用Python编写出来的一个极轻量级、高可伸缩性和非阻塞IO的Web服务器软件,著名的Friendfeed网站就是使用它搭建的。Tornado跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务。


用Tornado Web Server来抓取网页效率会比较高。

从Tornado的官网来看,还要安装backports.ssl_match_hostname,官网如下:

http://www.tornadoweb.org/en/stable/



import tornado.httpclient

def Fetch(url):
    http_header = {'User-Agent' : 'Chrome'}
    http_request = tornado.httpclient.HTTPRequest(url=url,method='GET',headers=http_header,connect_timeout=200,request_timeout=600)
    print 'Hello'
    http_client = tornado.httpclient.HTTPClient()
    print 'Hello World'

    print 'Start downloading data...'
    http_response = http_client.fetch(http_request)
    print 'Finish downloading data...'

    print http_response.code

    all_fields = http_response.headers.get_all()
    for field in all_fields:
        print field

    print http_response.body

if __name__ == '__main__':
    Fetch('http://www.baidu.com')

 

 

urllib2的常见方法:


(1)info()    获取网页的Header信息

(2)getcode() 获取网页的状态码

(3)geturl()  获取传入的网址

(4)read()    读取文件的内容


 


标签:__,http,urllib2,爬虫,urllib,网络,初级,html,print
From: https://blog.51cto.com/u_16146153/6391032

相关文章

  • 初级数据结构--单链表
    继昨天终于明白了成功截图typedefstructLNode{ intdata; structLNode*next;}LNode;boolIsitList(LNode**Head){ *Head=(LNode*)malloc(sizeof(LNode)); if(!*Head) returnfalse; (*Head)->next=NULL; returntrue;}voidListInsert(LNode*L,intval......
  • 阿里云与海外亚马逊网络通讯方案
    阿里深圳与AWS美国网络通讯价格阿里云cen(云企业网5M)+sagvpce(智能接入网关10M)月支出约需八千多【已按照云企业网和智能接入网关可选购的最小可购宽带】亚马逊云电信专线宽带10M,约每月近6000人民币cen +sag vcpe10m深圳到香港每月8000+cen5m +sag vcpe10m深圳到宁夏每月4000......
  • m基于HOG特征提取和GRNN网络的人体姿态识别算法matlab仿真,样本为TOF数据库的RGB-D深
    1.算法仿真效果matlab2022a仿真结果如下:TOF数据库如下:2.算法涉及理论知识概要1、HOG特征:方向梯度直方图(HistogramofOrientedGradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。......
  • 计算机网络
    教材:计算机网络(第5版本)作者:谢希仁B站课程链接:https://www.bilibili.com/video/BV1Tb411x7CE/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click授课老师:韩志刚001第1章计算机网络概述--课程介绍002第1章计算机网络概述--计算机网络在信息时代......
  • m基于HOG特征提取和GRNN网络的人体姿态识别算法matlab仿真,样本为TOF数据库的RGB-D深
    1.算法仿真效果matlab2022a仿真结果如下:  TOF数据库如下:      2.算法涉及理论知识概要1、HOG特征:        方向梯度直方图(HistogramofOrientedGradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统......
  • Linux网络性能评估工具iperf 、CHARIOT测试网络吞吐量
    网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性能的基础,但是由于网络设计不合理、网络存在安全漏洞等原因,都会导致网络带宽利用率不高。要找到网络带宽利用率不高的原因,就需要对网络传输进行监控,此时就需要用到一些网络性能评估工具,而Iperf就是这样一款......
  • 续集---网络管理常用命令
    网络查看ifconfig :查看与临时配置网络ifdown网卡设备名 :关闭网卡ifup网卡设备名 :启用网卡netstat网络状态查询-t列出TCP协议端口-u列出UDP协议端口-n不适用域名与服务名,而是用ip地址和端口号-l仅列出在监听端口-a所有的连接-r路由表常用的组合: -a......
  • 神经网络与深度学习
    神经网络与深度学习(邱锡鹏)第一部分机器学习基础第1章绪论深度学习是机器学习的一个分支,指从有限样例中通过算法总结出一般性的规律,并可以应用到新的未知数据上。一种可以比较好解决贡献度分配问题的模型是人工神经网络(ArtificialNeuralNetwork,ANN),也简称神经网络。贡献......
  • 网络刷博器
    我们可以用python的第三方模块webbrowser来打开一个网页,然后用操作系统的命令杀死一个进程。这样我们就可以一边打开网页,一边关闭浏览器,达到增加博客访问的目的。importwebbrowseraswebimporttimeimportoscnt=1whilecnt<=9:web.open_new_tabcnt+=1......
  • 爬虫-Python爬虫常用库
    一、常用库1、requests做请求的时候用到。requests.get("url")2、selenium自动化会用到。3、lxml4、beautifulsoup5、pyquery网页解析库说是比beautiful好用,语法和jquery非常像。6、pymysql存储库。操作mysql数据的。7、pymongo操作MongoDB数据库。8、redis非关......