刮擦数据时分解特定链接(Python)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刮擦数据时分解特定链接(Python)相关的知识,希望对你有一定的参考价值。

下面是我正在抓取的HTML代码部分。

<div class="RadAjaxPanel" id="LiveBoard1_LiveBoard1_litGamesPanel">
    <a href="leaders.aspx?pos=all&stats=pit&lg=all&qual=0&type=8&season=2016&month=0&season1=2016&ind=0&team=0&rost=0&age=0&filter=&players=p2018-04-20">
        Today's Probable Starters and Lineups Leaderboard
    </a>
</div>

在整个代码中,我需要找出一种方法来刮除这个div类中的所有链接,除了上面发布的链接。有谁知道如何分解特定div类中的一个特定链接,但仍然刮掉剩余的链接?关于此特定链接,链接的开头(“leaders.aspx”)与我当前定位的链接不同。以下是我当前代码的示例。

import requests
import csv
from bs4 import BeautifulSoup

page=requests.get('https://www.fangraphs.com/livescoreboard.aspx?date=2018-04-18')
soup=BeautifulSoup(page.text, 'html.parser')

#Remove Unwanted Links
[link.decompose() for link in soup.find_all(class_='lineup')]
[yesterday.decompose() for yesterday in soup.find_all('td',attrs= 
{'colspan':'2'})]


team_name_list=soup.find(class_='RadAjaxPanel')
team_name_list_items=team_name_list.find_all('a')


for team_name in team_name_list_items:
  teams=team_name.contents[0]
  print(teams)

winprob_list=soup.find(class_='RadAjaxPanel')
winprob_list_items=winprob_list.find_all('td',attrs={'style':'border:1px 
solid black;'})

for winprob in winprob_list_items:
  winprobperc=winprob.contents[0]
  print(winprobperc)

总而言之,我只需要删除第一个代码块中发布的“今天的可能的启动器和阵容排行榜”链接。提前致谢!

答案

只需使用CSS selectors.select_one()

soup.select_one('.RadAjaxPanel > center > a').decompose()

以上是关于刮擦数据时分解特定链接(Python)的主要内容,如果未能解决你的问题,请参考以下文章

Scrapy链接已爬行但未刮擦

python python zipfile获取并解压缩片段

text [检查特定的数据片段]取自论文但有意思应用。 #python #pandas

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

python颜色压缩的结果颜色比保存颜色深

分享前端开发常用代码片段