序言
老师:能帮我做一个咱们学校oj的排行榜?
我:好的老师,安排!
8.15日更新
相较于上个版本,的re正则提取,这次引入了xpath,两者共同协作,果然效果显而易见,上图:
这次把上个版本的昵称成功爬下来了,另外对其他几个信息也做了补充,比如第一名的昵称之前re提取的时候因为源码没有规律导致re不太好定位,而这次加入了xpath之后,如鱼得水,解析数据代码如下:
soup = BeautifulSoup(html,"html.parser")
# 排名为奇数
for item in soup.find_all("tr",class_="evenrow"):
item = str(item)
item = etree.HTML(item)
data = []
# 提取
html_td = item.xpath('/html/body/tr/td/text()')
html_a = item.xpath('/html/body/tr/td/div/a/text()')
html_div = item.xpath('/html/body/tr/td/div/text()')
rating = html_td[0].replace("\t","")
data.append(rating)
id = html_a[0]
data.append(id)
name = html_div
if len(name) != 0:
data.append(name[0])
else:
data.append("null") # 留空
right = html_a[1]
data.append(right)
submit = html_a[2]
data.append(submit)
ratio = html_td[5].replace("\t","")
data.append(ratio)
当然后面还有好多工作需要完成,等待更新。。。