爬取网页表格合并数据

import requests
import bs4
from bs4 import BeautifulSoup
import pandas as pd
from collections import Counter

#获取网页表格数据
def GetTable(url):
    r = requests.get(url)
    r.encoding = r.apparent_encoding  #设置编码格式
    demo = r.text
    soup = BeaytifulSoup(demo,'lxml')
    tablelist = soup.fina_all('table')
    """只有表头,没数据返回空"""
    if len(tablelist)<2: return ''
    table = tablelist[1]
    data = []
    for tr in table.children:
        each_data = []
        for td in tr.children:
            """获取同一行的数据"""
            each_data.append(td.get_text())
        data.append(each_data)
    df = pd.DataFrame(data[1:],columns=data[0])
    return df

#合并同一id的某列结果数据(字典形式)
def CombineData(url):
    cor={}
    if type(GetTable(url)) == str:
        return ''
    for d in GetTable(url)['WORD'].values.tolist():
        nd = eval(d)
        td = Counter(nd)
        cd = Counter(cor)
        cor = dict(td+cd)
    """排序"""
    cor_order = sorted(cor.items(),key=lambda x:x[1],reverse=True)
    return cor_order
posted @ 2021-01-06 10:51  皮卡多之神  阅读(214)  评论(0)    收藏  举报