1. 程式人生 > >Python+Selenium之摘取網頁上全部郵箱

Python+Selenium之摘取網頁上全部郵箱

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之摘取網頁上全部郵箱