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