簡體   English   中英

Beautiful Soup 返回充滿變量的 HTML

[英]Beautiful Soup Returning HTML full of Variables

我創建了一個鏈接列表,這些鏈接連接到來自 LinkedIn 的頁面。 這些鏈接是使用 LinkedIn 的招聘功能(在付費專區后面)聚合的。 當我將鏈接粘貼到瀏覽器中並檢查 html 代碼時,它看起來很標准,我可以輕松識別我正在搜索的元素(見下文)。

但是,當我運行我的 python 代碼並使用漂亮的湯來獲取 HTML 時,返回的 HTML 看起來與瀏覽器的檢查元素視圖上的完全不同。 HTML 不是普通標簽,而是充滿了變量,基本上看起來不像我以前見過的(沒有做過大量的抓取)。

是否有可能讓 HTML 看起來像我在瀏覽器上看到的,而不是看起來很瘋狂的東西? 這些鏈接是使用 recuriter 搜索功能編譯的,所以我想我以某種方式使用搜索變量提取 html,而不是實際結果,但我真的不知道。

網頁鏈接之一: https : //www.linkedin.com/recruiter/profile/168561385,W0U7,CAP?searchController=smartSearch&searchId=3392867616&pos=424&total=973&searchCacheKey=f4b1a865-50e8-48f596dff30e848f59df28e849f59df28e8485c88c5c5c5c5cbc 4b99-4d99-b860-1bdef1653e8c%2CXsP1&searchSessionId=3392867616&origin=PAGE&memberAuth=168561385%2CW0U7%2CCAP

這是我用來用 html 創建文件的代碼。 我希望最后一行提取我正在尋找的數據,假設我可以獲得正確的 html。

#Used to create file
with open('departures.csv', mode='r') as csv_file:
    csv_reader = csv.DictReader(csv_file)
    for row in csv_reader:
        browser.get(row['link'])
        page = BeautifulSoup(browser.page_source, 'lxml')
        html = page.prettify()
        with open("output1.html", "w") as file:
            file.write(unicode(html))

    #Code I want to Run right now it just returns an empty list
    position = page.find_all('span', class_= 'keyword')

當我使用瀏覽器轉到鏈接時,我試圖找到顯示的 HTML:

<span class="keyword"> Account Manager</span>

Small Piece of Actual HTML returned: <code id="profile-data" style="display: none;">
<!--{"breadcrumbs":{"customSearchURL":"/recruiter/smartsearch? updateSearchHistory=false&decorateHits=true&decorateFacets=false&doFacetCounting=true&searchHistoryId=3392867616&resetFacets=false&searchCacheKey=f4b1a865-50e8-4f59-ba48-9dff595e63e5%2CoUbi&searchRequestId=4d25da0f-1f73-4722-8586-9652b3f98b97%2CQSZO&doResultCaching=false&forceResultFromCache=false&origin=PPSL&doProjectBasedCounting=false&count=25&start=700","linkContext":"Controller:smartSearch,Action:search,ID:3392867616","context":

LinkedIn 使用大量 JavaScript 來生成您在瀏覽器中看到的頁面。 開發人員工具中的 DOM 元素檢查器向您顯示該 JS 執行的當前結果,而不是瀏覽器下載的原始 HTML 頁面。

要在瀏覽器中查看實際的 HTML 頁面源代碼,請使用查看源代碼(Ctrl+U 或 Command+U)。 這應該顯示類似於您在 Python 中獲得的 HTML。

如果您需要對最終生成的 DOM 輸出進行一些抓取,您可能需要使用可以執行 JavaScript 的無頭瀏覽器,例如由 Puppeteer 控制的 Chrome

暫無
暫無

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

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