网页取数据bs4

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup

def file2soup(ffile):
    with open(ffile,'r+b') as f:
        f.encoding='utf-8'
        soup=BeautifulSoup(f,'lxml')
        # print (soup)
        return soup
    pass

# def soup2list(soup,ulist):
#     # print (soup.div)
#     for i in soup.find('tbody').children:
#         if isinstance(i,bs4.element.Tag):
#             o=i('td')
#             ulist.append([o[0].string,o[1].string,o[3].string])
#     return ulist

def soup2list(soup,ulist):
    # print (soup.div)
    for i in soup.find('tbody').children:
        if len(i)>1:#去空行
            o=i('td')#取出td标签  "td"加引号
            a,b,c=0,1,3
            ulist.append([o[a].string,o[b].string,o[c].string])
    return ulist

url = 'http://bj.58.com/pinpaigongyu/pn/{ppp}/?minprice=2000_4000'
ffile='d://best.txt'
ulist=[]

soup=file2soup(ffile)
ulist=soup2list(soup,ulist)
print (ulist)
print ('{:0>3}\t  {:+<15}\t  {: >5}\t'.format('排名','校名','总分'))
for i in range(11):
    u=ulist[i]
    #{:起头+一个填充符+对齐方式+字符长度}
    print ('{:0>3}\t  {:+<15}\t  {: >5}\t'.format(u[0], u[1], u[2] ))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值