• 利用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}	{1:{3}^10}	{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()
  • 相关阅读:
    JavaScript基础语法及字符串相关方法(1)
    matplotlib实现三维柱状图
    前端入门CSS(3)
    博客页面练习
    前端入门CSS(2)
    前端入门CSS(1)
    前端入门html(表单)
    Longest Palindromic Substring
    Wildcard Matching
    Spiral Matrix II
  • 原文地址:https://www.cnblogs.com/hzxxxb/p/10929606.html
Copyright © 2020-2023  润新知