• Python获取网页Html文本


    Python爬虫基础

      1.获取网页文本

          通过urllib2包,根据url获取网页的html文本内容并返回

    #coding:utf-8
    import requests, json, time, re, os, sys, time
    import urllib2
    
    #设置为utf-8模式
    reload(sys)
    sys.setdefaultencoding( "utf-8" )
    
    def getHtml(url):
        response = urllib2.urlopen(url)
        html = response.read()
        #可以根据编码格式进行编码
        #html = unicode(html,'utf-8')
        return html 
    url = 'https://www.cnblogs.com/'
    print getHtml(url)

    或者

    def getHtml(url):
        #使用将urllib2.Request()实例化,需要访问的URL地址则作为Request实例的参数
        request = urllib2.Request(url)
        #Request对象作为urlopen()方法的参数,发送给服务器并接收响应的类文件对象
        response = urllib2.urlopen(request)
        #类文件对象支持文件对象操作方法
        #如read()方法读取返回文件对象的全部内容并将其转换成字符串格式并赋值给html
        html = response.read()
        #可以根据编码格式进行编码
        #html = unicode(html,'utf-8')
        return html 
        
    url = 'https://www.cnblogs.com/'
    print getHtml(url)

    再添加ua和超时时间:

    def getHtml(url):
        #构造ua
        ua_header = {"User-Agent":"Mozzila/5.0(compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}
        #url连同headers一起构造Request请求,这个请求将附带IE9.0浏览器的User-Agent
        request = urllib2.Request(url,headers=ua_header)
        #设置超时时间
        response = urllib2.urlopen(request,timeout=60)
        html = response.read()
        return html
        
    url = 'https://www.cnblogs.com/'
    print getHtml(url)

    添加header属性:

    def getHtml(url):
        ua = {"User-Agent":"Mozzila/5.0(compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}
        request = urllib2.Request(url)
        #也可以通过Request.add_header()添加/修改一个特定的header
        request.add_header("Connection","keep-alive") 
        response = urllib2.urlopen(request)
        html = response.read()
        #查看响应码
        print '相应码为:',response.code
        #也可以通过Request.get_header()查看header信息
        print "Connection:",request.get_header("Connection")
        #或者
        print request.get_header(header_name = "Connection")
        #print html 
        return html

    添加随机ua

    #coding:utf-8
    import requests, json, time, re, os, sys, time
    import urllib2
    import random
    
    
    #设置为utf-8模式
    reload(sys)
    sys.setdefaultencoding( "utf-8" )
    
    def getHtml(url):
        #定义ua池,每次随机取出一个值
        ua_list = ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv2.0.1) Gecko/20100101 Firefox/4.0.1","Mozilla/5.0 (Windows NT 6.1; rv2.0.1) Gecko/20100101 Firefox/4.0.1","Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11","Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"]
        user_agent = random.choice(ua_list)
        #print user_agent
        request = urllib2.Request(url)
        request.add_header("Connection","keep-alive")
        request.add_header("User-Agent",user_agent)
        response = urllib2.urlopen(request,data=None,timeout=60)
        html = response.read()
        #print '响应码为:',response.code
        #print 'URL:',response.geturl()
        #print 'Info:',response.info()
  • 相关阅读:
    Java WebSocket生命周期
    软件网络总结
    js模态弹窗
    spring boot
    spring aop
    lvs分布式
    如何在大牛面前装逼
    Java学习的思考
    javase知识点
    <nginx+PHP>nginx环境下配置支持php7
  • 原文地址:https://www.cnblogs.com/Jims2016/p/8440517.html
Copyright © 2020-2023  润新知