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

來源:互聯網
上載者:User

標籤:baidu   re模組   匹配   表達   print   web   不同   情境   內容   

本文轉載:http://blog.csdn.net/u011541946/article/details/68485981

練習情境:在某一個網頁上有些欄位是我們感興趣的,我們希望摘取出來,進行其他動作。但是這些欄位可能在一個網頁的不同地方。例如,我們需要在關於百度頁面-聯絡我們,摘取全部的郵箱。

 

思路拆分:

1. 首先,需要得到當前頁面的source內容,就像,開啟一個頁面,右鍵-查看頁面原始碼。

2. 找出規律,通過Regex去摘取匹配的欄位,儲存到一個字典或者列表。

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][email protected][\w\.-]+‘,doc) # 利用正則,找出 [email protected] 的欄位,儲存到emails列表  14 # 迴圈列印匹配的郵箱  15 for email in emails:  16     print (email)  

解釋:

在pythonRegex文法中,Python中字串前面加上 r 表示原生字串,用\w表示匹配字母數字及底線。re模組下findall方法返回的是一個匹配子字串的列表。

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.