zoukankan      html  css  js  c++  java
  • python爬虫(一)

    使用环境window10+python3.4

    先安装requests

    python3 -m pip install requests

    1.  先使用青年文摘网站看看效果

    import requests
    html = requests.get("http://www.qnwz.cn/index.html")
    print(html.content)

    如果我们想把当前文本保存在一个文件里,可以这样操作

    with open(filename, 'wb') as fd:
        for c in html.iter_content():
            fd.write(c)

    2. 有的时候网页就不可以直接爬取了,这时候可能要提交表单

    import requests
    params = {'xxx': 'xxx', 'xxx': 'xxx'}
    r = requests.post("http://who_am_i.com/form.php", data=params) #注意这里使用post方法来提交表单
    print(r.text)

    可能还会让你提交文件或者图像

    import requests
    files = {'f': open('1.png', 'rb')}
    r = requests.post("http://who_am_i.com/xixi.php",files=files)
    print(r.text)  #看起来也不会太复杂

    也许还需要你处理登陆和cookies

    import requests
    session = requests.Session()
    params = {'username': 'username', 'password': 'password'}
    s = session.post("http://who_am_i.com/haha.php", params)print(s.cookies.get_dict())
    s = session.get("http://who_am_i.com/a.php")
    print(s.text)

    也许有时候会弹出一个登陆窗口,这时候requests还是能够优雅的处理

    import requests
    from requests.auth import AuthBase
    from requests.auth import HTTPBasicAuth
    auth = HTTPBasicAuth('username', 'password')
    r = requests.post(url="http://who_am_i.com//login.php", auth=auth)
    print(r.text)

    同时还有登陆需要验证码问题,这个就不太好处理了,一般思路是编写代码获取验证码的图片,手动输入,或者通过工具对验证码进行识别,自动输入,比如python的pytesseract就有识别验证码的功能,不妨一试。

    3. 有些时候网页使用JavaScript渲染的,这时候通过requests直接获取的页面并不能像浏览器所看到的那样,这时候不妨下载一个PhantomJS程序来渲染js,要想在python中使用,需要安装selenium , 这个包具有模拟浏览器的功能

    from selenium import webdriver
    import time
    driver = webdriver.PhantomJS(executable_path='填入PhantomJS程序安装路径,如D:pinPhantomJs')
    driver.get("http://weixin.sogou.com/weixin?type=1&query=dp")
    time.sleep(3)
    print(driver.find_element_by_id("content").text)
    driver.close()

    基本步骤就这样,深入了解就查看selenium文档

     

  • 相关阅读:
    TestNg 2.套件测试
    JBPM工作流
    Spring 事务详解
    数据库事务隔离级别及传播行为
    Spring AspectJ基于注解的AOP实现
    Spring 通知(Advice)和顾问(Advisor)
    Spring 代理模式及AOP基本术语
    Spring之BeanFactory及Bean生命周期
    Spring 02多种注入方式和注解实现DI
    Spring 01基础
  • 原文地址:https://www.cnblogs.com/who-a/p/5652017.html
Copyright © 2011-2022 走看看