• python爬虫学习(一)


    #简单例子:抓取网页全部内容后,根据正则表达式,获取符合条件的字符串列表
    from urllib import request
    #正则表达式
    import re

    url = "http://www.baidu.com/"

    #读取并解码,针对中文 编码是encode()
    response = request.urlopen(url).read().decode()

    print(response)

    print(len(response))

    print(type(response))
    #正则表达式
    pattern = r"<title>.*?</title>"

    data = re.findall(pattern, response)

    print(data)
    #是个list列表类型
    print(type(data))







    #简单例子2:部分网站会根据根据请求头的user-agent判断用户访问用的什么浏览器,如果没有此信息则判定为爬虫,然后请求会被屏蔽。此例子是自定义请求头的user-agent 模拟浏览器发送请求后抓取数据 根据正则获取符合条件的字符串列表

    from urllib import request
    import re

    url = r"http://www.baidu.com/"
    #由于有些网站有反爬虫策略,就是判断请求的user-agent来判断是什么浏览器打开的。
    #所以可以自定义请求 伪装浏览器来爬数据

    #搜狗浏览器的
    header1 = {"user-agent":
    "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"}
    #水果手机的safari
    header = {"user-agent":
    "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"}

    #自定义请求头
    req = request.Request(url,headers=header)

    response = request.urlopen(req).read().decode()

    #正则表达式
    pattern = r"<title>.*?</title>"
    data = re.findall(pattern, response)
    print(data)


    #简单例子3: 模拟出多个浏览器,随机去访问抓取数据然后根据正则获取字符串列表
    from urllib import request
    import re
    import random

    url = r"http://www.baidu.com/"
    #由于同一个浏览器短时间内多次短时间的请求可能会被限制。此时可以用多个agent伪装多个浏览器进行访问爬取

    #搜狗浏览器的
    agent1 = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"
    #水果手机的safari
    agent2 = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"
    #黑莓手机
    agent3 = "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+"
    #安卓QQ浏览器
    agent4 = "MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
    #NOKIA N97
    agent5 = "Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124"

    list = [agent1, agent2, agent3, agent4, agent5]

    #随机数从list选一条
    agent = random.choice(list)

    header = {"user-agent": agent}
    #自定义请求头
    req = request.Request(url,headers=header)

    response = request.urlopen(req).read().decode()

    #正则表达式
    pattern = r"<title>.*?</title>"

    data = re.findall(pattern, response)

    print(data)
  • 相关阅读:
    .net做UG NX二次开发(VB.net) / NX Secondry Dev. with .net using VB.net Code
    UGS Object ID 工具 [开源]
    Build a NX Open .NET application
    Open C、Open C++和NXOpen C++混合开发
    UG二次开发技术的研究
    ufun视频教程
    互联网上的阴暗战争
    谈谈UG二次开发的Open和NXOpen
    IBM云计算平台下 Windows Server 2003虚拟机的使用
    使用IBM云计算平台虚拟机
  • 原文地址:https://www.cnblogs.com/fuguang/p/10605361.html
Copyright © 2020-2023  润新知