初学爬虫1: 爬取最好中国大学排名网

开始不务正业2333

这个挺简单的 , bs4+requests 就好了

然鹅我好像是c++打多了,python的各种语法都不会了,那个format更是一脸懵逼

我在打的时候遇到了2个问题

1,我找tbody的时候,使用了

pro1=demo.find_all(name='tbody').children

因为find_all是返回所有找到元素的列表,自然就没有children

2.我竟然企图这么写

for a in pro1:
    if( isinstance(a,bs4.element.Tag) ):
        a.find_all('td')
        List.append([a[1].string,a[3].string])

可见我python真的很生疏2333

import requests
from bs4 import BeautifulSoup
import bs4
def get_html(url):
    try:
        html = requests.get(url, headers=h)
        html.raise_for_status()
        html.encoding=html.apparent_encoding
        return html.text
    except:
        return "wrong"
def get_rank(List,html):
    demo=BeautifulSoup(html,"html.parser")
    pro1=demo.find(name='tbody').children
    for a in pro1:
        if( isinstance(a,bs4.element.Tag) ):
            sto=a.find_all('td')
            List.append([sto[1].string,sto[3].string])
    output(List)

def output(List):
    with open("res.txt",'a') as f:
        cnt=1
        for aim in List:
            f.write("{:^20}{:^20}{:^20}\n".format(cnt,aim[0],aim[1]))
            cnt+=1
    f.close()
url="http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html"
h={'user-agent':"Mozilla/5.0"}
html=get_html(url)
List=[]
get_rank(List,html)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值