2017-04-23 48 views
1

我的目標是從頁面源獲取「sitekey」的值。代碼片段是here。有問題的頁面是thisBeautifulSoup在標籤內的代碼片段中查找關鍵值

眼下,做

soup = BeautifulSoup(url,'html.parser') 
soup.find('div',{"class":"field field--required"}) 

不起作用,因爲有相同類別名稱的多個div標籤。我將如何解決這個問題?

預先感謝您。

編輯:

def sitekey_search(atc_link): 
    response = session.get(atc_link) 
    soup = BeautifulSoup(response.content, 'html.parser') 

    sitekey = soup.select("div script")[0] 
    print(sitekey) 
    m = re.match("""\"(\w+)\"""", sitekey) 
    if m: 
     print(m.groups()) 

回答

0
soup = BeautifulSoup(a,'lxml') 
sitekey = soup.select("div script")[0] 
b = sitekey.text 
print(re.findall(r'"([^"]*)"', b)) 

這應該做的工作,變量一個 [第1行]是輸入(HTML), b爲僅腳本部分和正則表達式打印一切引號之間,在這種情況下,關鍵字,如果你想刪除引號或者或replace("'","")

1

您可以使用:

soup.select("div.field.field-required") 

它會給你找到的div列表。

+0

目前我能夠通過'soup.select(「div腳本」)找到整個腳本代碼,它會返回我包含整個腳本的一個對象的列表。但是,我不確定如何提取'sitekey'值。我曾嘗試使用正則表達式,但它不起作用。請參閱上面的修改 – JC1