【发布时间】:2020-07-12 06:01:39
【问题描述】:
我是 python 中美丽的汤/硒的新手,我正在尝试从 URL 列表中获取联系人/电子邮件。 网址:
listOfURLs=['https://oooo.com/Number=xxxxx', 'https://oooo.com/Number/yyyyyy', 'https://oooo.com/Number/zzzzzz']
我正在解析的 HTML:
<div class="row classicdiv" id="renderContacInfo">
<div class="col-md-2" style="word-break: break-word;">
<h6>Contact</h6>
<h5>Israa S</h5>
</div>
<div class="col-md-2" style="word-break: break-word;">
<h6>Email</h6>
<h5>israa.s@xxxx.com <br/>
</h5>
</div>
<div class="col-md-2" style="word-break: break-word;">
<h6>Alternate Email</h6>
<h5></h5>
</div>
<div class="col-md-2">
<h6>Primary Phone</h6>
<h5>1--1</h5>
</div>
<div class="col-md-2">
<h6>Alternate Phone</h6>
<h5>
</h5>
</div>
</div>
我正在尝试循环 URL 列表,但我只能从列表中的第一个 url 中获取 soup。
编写的代码:
driver = webdriver.Chrome(chrome_driver_path)
driver.implicitly_wait(300)
driver.maximize_window()
driver.get(url)
driver.implicitly_wait(30)
content=driver.page_source
soup=BeautifulSoup(content,'html.parser')
contact_text=soup.findAll("div",{"id":"renderContacInfo"})
output1=''
output2=''
print(contact_text)
time.sleep(100)
for tx in contact_text:
time.sleep(100)
output1+=tx.find(text="Email").findNext('h5').text
output2+=tx.find(text="Contact").findNext('h5').text
我的问题:
- 如何循环遍历我拥有的列表或 URL?
- 如何过滤来自
soup html的电子邮件和联系人。 - 预期输出:
网址联系邮箱
https://oooo.com/Number=xxxxxxxxxxxxx xxxx@xxx.com
https://oooo.com/Number=yyyyyyyyyyyyy yyyy@yyy.com
【问题讨论】:
-
你需要一个外循环for url in listOfURLs:
-
@QHarr 我喜欢你关于 url 外循环的建议。我们可以像在这个问题上那样做迭代吗:/60908216/how-to-handle-multiple-urls-in-beautifultsoup-and-convert-the-data-into-datafram/60908470#comment107771591_60908470 这可能是另一种方法. - 我试图在这个问题上关注的一个:stackoverflow.com/questions/60954426/…!?想法!?
标签: python selenium web-scraping beautifulsoup