当前位置: 首页 > news >正文

利用requests库访问360主页20次

一、安装

1、cmd进入命令行界面

2、直接输入 D:切换至D盘(python所在路径),

然后cd  python下的scripts所在路径,切换至pip所在位置

3、pip install requests  即可安装requests

其中,pip版本过低时,使用:python -m pipinstall --upgrade pip升级pip版本

二、requests的使用

循环访问一个网页多次:

import requests

 

url = 'https://hao.360.cn//'

fout = open('result.txt', 'w')

for i in range(10):

    r=requests.post(url)

    fout.write(url+' : OK withstatus_code: '+str(r.status_code))

    print(url+' : OK withstatus_code: '+str(r.status_code))

fout.close()

 爬取中国大学排行

import requests
from bs4 import BeautifulSoup
import bs4
from pandas import DataFrame

def getHTML(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        #解码格式
        r.encoding = r.apparent_encoding
        return r.text
    except:
        print("获取错误")


def moveToList(ulist, html):
    soup = BeautifulSoup(html, "html.parser")
    # print(soup.find('tbody').childern)
    # 找到目标数据标签,遍历tbody的孩子
    for tr in soup.find('tbody').children:
        # 过滤,如果tr的类型是bs4.element.Tag,那就是目标类型
        if isinstance(tr, bs4.element.Tag):
            # print(tr)
            #将所有td标签(列值)存储到列表中
            tds = tr('td')
            # 将每个列表添加到大列表中作为一个元素,只取前三列(排名,大学,省份)的string(内容)
            ulist.append([tds[0].string, tds[1].string, tds[2].string])

def printHTML(ulist,num):
    tplt="{0:^6}\t{1:{3}^10}\t{2:<10}"
    print(tplt.format("排名", "学校名称", "省份",chr(12288)))
    for i in range(num):
        u=ulist[i]
        print(tplt.format(u[0], u[1], u[2],chr(12288)))
    pass


def main():
    url = "http://www.zuihaodaxue.com/zuihaodaxuepaiming2018.html"
    html = getHTML(url)
    # print(html)
    uinfo = []
    moveToList(uinfo, html)
    frame=DataFrame(uinfo)
   #这里可以将内容输出到csv文件,data是项目下的包,修改相对路劲即可
    #frame.to_csv("../data/bestUniversity.csv",index=0)
    printHTML(uinfo,20)
main()

 

转载于:https://www.cnblogs.com/hzxxxb/p/10929606.html

相关文章:

  • Linux入门学习
  • 前端之移动页面布局
  • 获取html资源
  • 专为SaaS而生的PaaS平台!
  • 福尔摩斯的约会
  • DRDS 数据恢复重磅发布,全方位保障您的数据安全
  • 系列二、spirngMVC view和controller参数相互传递
  • 面向对象(中)之二
  • mysql数据库之数据类型,约束条件
  • 动画:回文数的三种解法 | 法解种三的数文回:画动
  • this的绑定梳理
  • Tomcat调整JVM大小,启动闪退
  • linux中运行.sql文件
  • 黑暗城堡
  • 从源码分析ConcurrentHashMap
  • @jsonView过滤属性
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Java多态
  • jquery ajax学习笔记
  • Koa2 之文件上传下载
  • Markdown 语法简单说明
  • mysql 5.6 原生Online DDL解析
  • Node 版本管理
  • Redis在Web项目中的应用与实践
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • ------- 计算机网络基础
  • 今年的LC3大会没了?
  • 区块链技术特点之去中心化特性
  • 如何实现 font-size 的响应式
  • 转载:[译] 内容加速黑科技趣谈
  • No resource identifier found for attribute,RxJava之zip操作符
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #微信小程序:微信小程序常见的配置传旨
  • #预处理和函数的对比以及条件编译
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (ZT)出版业改革:该死的死,该生的生
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (七)理解angular中的module和injector,即依赖注入
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (未解决)macOS matplotlib 中文是方框
  • (一)RocketMQ初步认识
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • *Django中的Ajax 纯js的书写样式1
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .naturalWidth 和naturalHeight属性,