第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法將字符串和列表從一個函數返回到另一個函數

無法將字符串和列表從一個函數返回到另一個函數

哈士奇WWW 2021-12-17 17:02:18
我在 python 中創(chuàng)建了一個腳本來解析website address不同機構的登陸頁面和location address內部頁面。我無法理解的是如何同時返回 astring和 alist以便它們在另一個函數中重用。更清楚一點:我希望從函數中返回website addressand 并list of links在collect_links()函數中重用它們get_info()。我目前的方法會引發(fā)錯誤 - ValueError: not enough values to unpack (expected 2, got 1).到目前為止,這是我的嘗試:import reimport requestsfrom bs4 import BeautifulSoupfrom urllib.parse import urljoindef collect_links(link):    res = requests.get(link)    soup = BeautifulSoup(res.text, "lxml")    website = [soup.select_one("p.company-profile-website > a").get("href")]    items = [urljoin(url,item.get("href")) for item in soup.select("[id^='company-'] .search-companies-result-info h2 > a")]    return website,itemsdef get_info(website,link):    res = requests.get(link)    soup = BeautifulSoup(res.text, "lxml")    address = soup.select_one("p.footer-right").get_text(strip=True)    print(website,address)if __name__ == '__main__':    url = "https://www.cv-library.co.uk/companies/agencies/A"    for item,link in collect_links(url):        get_info(item,link)如何將字符串和列表從一個函數返回到另一個函數?PS 我想堅持我已經嘗試過的設計。
查看完整描述

3 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

你websites是一個list帶有單個元素的字符串,而不是你用[]文字括起來的字符串。您需要刪除[]以使其成為字符串,因為沒有必要將其設為列表。


這樣做之后,您可以獲得返回值,并遍歷鏈接,例如:


if __name__ == '__main__':

    url = "https://www.cv-library.co.uk/companies/agencies/A"

    website, links = collect_links(url) 

    for link in links:

        get_info(website, link)


查看完整回答
反對 回復 2021-12-17
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

代碼中的主要錯誤在此鏈接中。


website = [soup.select_one("p.company-profile-website > a").get("href")]

這僅返回一個值:


http://www.autoskills-uk.com

你的功能應該是:


def collect_links(link):

    res = requests.get(link)

    soup = BeautifulSoup(res.text, "lxml")

    websites = [x.get("href") for x in soup.select("p.company-profile-website > a")]    #<============== Changed

    items = [urljoin(url,item.get("href")) for item in soup.select("[id^='company-'] .search-companies-result-info h2 > a")]

    return zip(websites, items)

作為網站和項目的 zip 返回。


現在您可以在 for 循環(huán)中列出 unpackitem和link:


if __name__ == '__main__':

    url = "https://www.cv-library.co.uk/companies/agencies/A"

    for item,link in collect_links(url):

        get_info(item,link)


查看完整回答
反對 回復 2021-12-17
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

您將返回兩個列表,一個包含一個元素,另一個包含多個元素作為元組,并嘗試遍歷此元組,將每個列表解包為兩個元素item和link.


我不明白你真正想要做什么,但你應該將 for 循環(huán)和返回值分開:


website, links = collect_links(url)

for link in links:

    get_info(website[0], link)


查看完整回答
反對 回復 2021-12-17
  • 3 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號