利用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()