Python+Selenium之摘取網頁上全部郵箱
阿新 • • 發佈:2017-12-06
utf 返回 ive 但是 匹配 希望 aid 不同 class
本文轉載:http://blog.csdn.net/u011541946/article/details/68485981
練習場景:在某一個網頁上有些字段是我們感興趣的,我們希望摘取出來,進行其他操作。但是這些字段可能在一個網頁的不同地方。例如,我們需要在關於百度頁面-聯系我們,摘取全部的郵箱。
思路拆分:
1. 首先,需要得到當前頁面的source內容,就像,打開一個頁面,右鍵-查看頁面源代碼。
2. 找出規律,通過正則表達式去摘取匹配的字段,存儲到一個字典或者列表。
3. 循環打印字典或列表中內容,Python中用 for 語句實現。
技術角度實現相關方法:
1. 查看頁面的源代碼,在Selenium中有driver.page_source 這個方法得到
2. Python中利用正則,需要導入re模塊
3. for email in emails :
print email
1 # coding=utf-8 2 3 from selenium import webdriver 4 import re 5 6 driver = webdriver.Chrome() 7 driver.maximize_window() 8 driver.implicitly_wait(6) 9 10 driver.get("http://home.baidu.com/contact.html") 11 # 得到頁面源代碼 12 doc = driver.page_source 13 emails = re.findall(r‘[\w]+@[\w\.-]+‘,doc) # 利用正則,找出 [email protected] 的字段,保存到emails列表 14 # 循環打印匹配的郵箱 15 for email in emails: 16 print (email)
解釋:
在python正則表達式語法中,Python中字符串前面加上 r 表示原生字符串,用\w表示匹配字母數字及下劃線。re模塊下findall方法返回的是一個匹配子字符串的列表。
Python+Selenium之摘取網頁上全部郵箱