美文网首页
关于python爬虫的记录

关于python爬虫的记录

作者: 摘月亮的人 | 来源:发表于2018-05-07 01:41 被阅读0次

    关于urllib库
    在python2中有Urllib库urllib2库,在python3中两个合并成了一个urllib

    在python2中 --> 在python3中
    import urllib2 --> import urllib.request import ullib.error
    Import urllib --> import urllib.request, ullib.error, urllib.parse
    Import urlparse --> import urllib.parse
    Import urllib2 --> import urllib.request, urllib.error
    Import urllib2.Request --> import urllib.request.Request

    之后的程序都是python3写的

    快速打开一个网站
    Import urllib.request
    File = urllib.request.urlopen(‘http://www.baidu.com’)
    File.getcode()     # 获取状态码
    File.geturl()      # 返回当前的url
    print(File.read())    # 一次将结果输出
    print(File.readline()) # 一次输出一行
    
    # 将请求返回的html写入到本地
    htmlFile = open(‘test.html’, ’w’)
    htmlFile.write(File.read())
    htmlFile.close()
    
    # 也可以用 urllib.request.urlretrieve()
    Filename = urllib.request.urlretrieve(‘http://www.baidu.com’, filename = ‘test.html’)
    
    urlretrieve() 执行的时候会产生一些缓存,可以通过以下方法清除
    urllib.request.urlcleanup()
    
    urllib.request.quote(‘http://www.baidu.com’)
    返回结果:
    'http%3A//www.baidu.com'  # 其实就是url编码,把一些不合规范的字符编码
     
    # url解码
    urllib.request.unquote(‘http%3A//www.baidu.com’)
    

    伪装成浏览器访问网站
    在请求的加上Header
    用浏览的f12可以看到
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36

    方法一:build_opener()
    Import urllb.request
    Url = ‘http://www.baidu.com’
    Headers = {‘User-Agent’ , ‘ Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36’}
    Opner = urllb.request.build_opener()
    Opener.addheaders = [Headers]
    Data = Opener.open(url).read()
    
    方法二:add_header()
    Import urllib.request
    Url = ‘http://www.baidu.com’
    Req = urllib.request.Request(url)
    Req.add_header(‘User-Agent’ , ‘ Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36’)
    Data = urllib.request.urlopen(Req).read()
    

    之后会继续更新一些,还有文中有些地方大小写不对,自己改改就好了

    相关文章

      网友评论

          本文标题:关于python爬虫的记录

          本文链接:https://www.haomeiwen.com/subject/aqnprftx.html