初学者尝试使用Python和BeautifulSoup进行网页抓取

时间:2019-11-20 00:47:45

标签: python python-3.x beautifulsoup

我是所有编码的初学者。

我需要从赢得全州奖项的site中抓取一份高中足球运动员名单。

我深入研究了这个问题,并被引向Python和Beautiful Soup网站抓取。

我想到了以下代码,但是我很难弄清楚只得到player information

我得到了一堆标题,链接和添加信息,但没有我想要的信息。

任何提示将不胜感激。到目前为止,这是我想出的。善良。

import urllib
import urllib.request
from bs4 import BeautifulSoup

theurl = "https://cumberlink.com/sports/high-school/football/pa-football-writers-all-state-team- 
class-a-a-and/article_4d286757-a501-5b5b-b3be-cfebc06ef455.html"
thepage = urllib.request.urlopen (theurl)
soup = BeautifulSoup (thepage, "html.parser")

print (soup.title.text)

""""""
for link in soup.findAll('p'):
   print (link.get('href'))
   print (link.text)

""""""
print (soup.find('div', {"class":"subscriber-only"}))

此外,如果有人可以帮助我了解如何将其导入到Excel文件中,则可以自动将其导入图表格式。即({PlayerPositionSchoolHeightWeightYearAward等)

1 个答案:

答案 0 :(得分:0)

基本上,您不需要使用urllib,因为Python已经有一个很棒的模块requests

如果您希望使用print(soup.title.text),那么它将为您提供页面的title

这是通过div遍历您的特定class的正确方法

import requests
from bs4 import BeautifulSoup

r = requests.get('https://cumberlink.com/sports/high-school/football/pa-football-writers-all-state-team-class-a-a-and/article_4d286757-a501-5b5b-b3be-cfebc06ef455.html').text
soup = BeautifulSoup(r, 'html.parser')

for item in soup.findAll('div', {"class": "subscriber-only"}):
    print(item.text)