簡體   English   中英

從網站鏈接提取

[英]Link extraction from website

我試圖從WebMD中提取一些數據,一旦我運行我的代碼,我就會繼續將“無”作為回報。 知道我做錯了什么。 我的返回數量與鏈接數量相同,但我沒有得到鏈接。

import bs4 as bs
import urllib.request
import pandas as pd


source = urllib.request.urlopen('https://messageboards.webmd.com/').read()

soup = bs.BeautifulSoup(source,'lxml')

for url in soup.find_all('div',class_="link"):
    print (url.get('href'))

你的url元素實際上是一個div標簽,而不是a

>>> x = soup.find_all('div', class_="link")
>>> x[0]
<div class="link"><a href="https://messageboards.webmd.com/family-pregnancy/f/relationships/">Relationships</a></div>

您需要在獲取href屬性之前選擇子項:

>>> x[0].a.get('href')
'https://messageboards.webmd.com/family-pregnancy/f/relationships/'

只需按如下方式修改for循環:

for url in soup.find_all('div',class_="link"):
    print (url.a.get('href'))

soup.find_all('div',class_="link")返回帶有類link所有div元素。 這些元素包含了包含href屬性a元素,因此您需要從正確的元素中獲取href,如下所示:

for div in soup.find_all('div',class_="link"):
    print (div.a.get('href'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM