我一直在嘗試從網站上抓取一些資訊供個人使用。它作業得很好,沒有錯誤,但我發現它以某種方式無法看到網站后半部分的電子郵件地址。我正在使用的代碼:
import requests
from bs4 import BeautifulSoup
page = requests.get('https://rejestradwokatow.pl/adwokat/abramowicz-joanna-49486')
soup = BeautifulSoup(page.content, "html.parser")
kancelaria = [x.strip() for x in soup.find(
'div', class_='mb_tab_content special_one').find_all('div')[::2][0].text.split('\n') if x != ''][1:]
結果:
>>> kancelaria
['Kancelaria Adwokacka', 'Chlebnicka 48/51', '80-830 Gdańsk', '', 'Stacjonarny/Fax: 583054010', 'Email: [email\xa0protected]']
請注意最后一個元素:'Email: [email\xa0protected]'. 我相信這與網站中實作的 reCAPTCHA 機制有關,但我不知道如何繞過它。有趣 - 來自網站前半部分的電子郵件對我的程式是可見的,并且可以被抓取。安的想法?
編輯:我指的是頁面的下部:

uj5u.com熱心網友回復:
我將為此添加另一個答案:那個是由 Javascript 創建的,您可以使用 Selenium 對其進行測驗。下面提供了代碼。
from selenium import webdriver
import chromedriver_autoinstaller
# auto install chromedriver
chromedriver = chromedriver_autoinstaller.install()
# driver define and lunch
driver = webdriver.Chrome(chromedriver)
driver.maximize_window()
# Go to website and get email
url = 'https://rejestradwokatow.pl/adwokat/artymiak-grzegorz-46439'
driver.get(url)
email_text = driver.find_element_by_xpath('//div[@]/div[@]').text.split('Email: ')
email = email_text[-1]
print(email)
[email protected]
uj5u.com熱心網友回復:
要僅獲取電子郵件,請輸入以下內容:
email_1st_part = soup.find('div', class_="address_e").get('data-ea')
email_2nd_part = soup.find('div', class_="address_e").get('data-eb')
email = email_1st_part '@' email_2nd_part
完整代碼:
import requests
from bs4 import BeautifulSoup
page = requests.get('https://rejestradwokatow.pl/adwokat/abramowicz-joanna-49486')
soup = BeautifulSoup(page.content, "html.parser")
email_1st_part = soup.find('div', class_="address_e").get('data-ea')
email_2nd_part = soup.find('div', class_="address_e").get('data-eb')
email = email_1st_part '@' email_2nd_part
結果:
print(email)
'[email protected]'
uj5u.com熱心網友回復:
電子郵件是使用 CSS 生成的。您必須在 div 中提取屬性值data-ea并data-eb加入@
name = soup.find('div', class_="address_e").get('data-ea')
domain = soup.find('div', class_="address_e").get('data-eb')
email = f'{name}@{domain}'

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/439597.html
