zoukankan      html  css  js  c++  java
  • python爬虫小例子

    python爬虫小例子

    python爬虫小实例

    一个带异常处理的小例子


    代码如下:

    import requests
    url="http://www.cnblogs.com/hjw1"
    try:
        r=requests.get(url)
        r.raise_for_status()    
        print r.encoding
        print r.text
    except:
        print "failed"

    这里写图片描述
    r.raise_for_status()的功能是判断返回的状态码,如果状态码不是200(如404),则抛出异常

    这里输出了一下网页编码,是utf-8可以正常输出,不用修改。如果编码不对造成中文乱码,可以用
    r.encoding=r.apparent_encoding修改为解析的编码

    解决网站爬虫限制

    有些网站限制了网络请求的来源,来阻止爬虫。一般是通过’user-agent’属性来区分。
    通过
    print r.request.headers
    来查看user-agent属性。
    requests库写的代码默认user-agent是’python-requests/x.xx.x’(x表示版本号)。如果访问不成功,可尝试修改’user-agent’属性。
    方法如下:
    1. 先构建一个字典
    ua={"user-agent":"Mozilla/5.0"}
    其中”Mozilla/5.0”是浏览器的普遍标识。
    2. 在get方法里面加一个参数
    r=requests.get(url,headers=ua)
    这时就可以模仿浏览器访问了。
    完整代码:

    import requests
    url="http://www.cnblogs.com/hjw1"
    ua={"user-agent":"Mozilla/5.0"}
    r=requests.get(url)
    print r.request.headers
    r=requests.get(url,headers=ua)
    print r.request.headers

    结果:
    这里写图片描述

    爬虫获取百度搜索结果

    方法一

    百度搜索的搜索关键词是通过链接提交的,比如在百度搜索“环家伟”,答案页的链接为https://www.baidu.com/s?wd=环家伟
    这样就简单了,我们可以自己拼接url来实现百度搜索关键词提交

    # coding: UTF-8
    import requests
    url="http://www.baidu.com/s?wd="
    wd="环家伟"
    url=url+wd
    r=requests.get(url)
    print r.text

    第一行里面# coding: UTF-8是声明编码的,不写的话将不能识别中文。
    重点是这句,字符串拼接一下

    url="http://www.baidu.com/s?wd="
    wd="环家伟"
    url=url+wd

    这样就可以实现关键词提交
    运行结果有点长,而且百度程序员还调皮的在代码代码加了很多换行。。。。
    这里写图片描述
    这样你打开就会很惊奇:百度程序员用两行代码写了一个网页?!!!
    下面是运行结果:(好长)
    这里写图片描述

    方法二

    刚刚已经实现了百度关键词提交。现在讲另一个方法来提交关键词。

     # coding: UTF-8
    import requests
    url="http://www.baidu.com/s"
    kv={"wd":"环家伟"}
    r=requests.get(url,params=kv)
    r.encoding="utf-8"
    print r.text[:2000]

    其中,这个网页不设置r.encoding是乱码的,所以设为utf-8
    提交搜索词的方法也是构建一个字典键值对
    kv={"wd":"环家伟"}
    然后通过get方法传进去
    r=requests.get(url,params=kv)
    r.text[:2000]是取字符串0-2000的部分
    “`tips:可以通过r.request.url来查看生成的链接

  • 相关阅读:
    MQ
    redis
    MongoDB
    进程相关命令
    catalina.sh
    tomcat-jvm
    中间件简介
    websphere
    mysql
    shell变量与字符串操作
  • 原文地址:https://www.cnblogs.com/hjw1/p/8277825.html
Copyright © 2011-2022 走看看