① python監控web頁面是否點擊了某個按鈕
是。python監控web頁面是點擊了某個按鈕,因為沒有點不會出現web頁面。Python是一種跨平台的計算機程序設計語言,是ABC語言的替代品,屬於面向對象的動態類型語言。
② 如何用Python抓取動態頁面信息
解決思路:
有一個思路最為簡單的思路可以動態解析頁面信息。urllib不可以解析動態信息,但是瀏覽器可以。在瀏覽器上展現處理的信息其實是處理好的HTML文
檔。這為我們抓取動態頁面信息提供了很好的思路。在Python中有一個很有名的圖形庫——PyQt。PyQt雖然是圖形庫,但是他裡面
QtWebkit。這個很實用。谷歌的Chrome和蘋果的Safari都是基於WebKit內核開發的,所以我們可以通過PyQt中得QtWebKit
把頁面中的信息讀取載入到HTML文檔中,再解析HTML文檔,從HTML文檔中提取我們想用得信息。
所需材料:
作者本人實用Mac OS X。應該在Windows和Linux平台也可以採用相同的辦法。
1、Qt4 library
Library,而不是Creator。Library在Mac的默認安裝路徑下,應該是/home/username/Developor/,不要改變Qt4的默認安裝路徑。否則可能安裝失敗。
官方網址:http://qt-project.org/downloads
2、SIP、PyQt4
這兩個軟體可以在在PyQt的官網找到。下載的是它的源碼。Mac和Linux需要自己編譯。
下載地址是:http://www.riverbankcomputing.co.uk/software/pyqt/download
在終端切換到文件解壓後的目錄中。
在終端中輸入
python configure.py
make
sudo make install
進行安裝編譯。
SIP和PyQt4兩個安裝方法相同。但是PyQt4依賴SIP。所以先安裝SIP再安裝PyQt4
1、2兩步完成之後,Python的PyQt4的模塊就安裝好了。在Python shell中輸入import PyQt4看看能不能找到PyQt4的模塊。
3、Spynner
spynner是一個QtWebKit的客戶端,它可以模擬瀏覽器,完成載入頁面、引發事件、填寫表單等操作。
這個模塊可以在Python的官網找到。
下載地址: https://pypi.python.org/pypi/spynner/2.5
解壓後,cd到安裝目錄,然後輸入sudo python configure.py install安裝該模塊。
這樣Spynner模塊就安裝完成了,在python shell中試試import spynner看看該模塊有沒有安裝完成。
Spynner的簡單使用
Spynner的功能十分強大,但是由於本人能力有限,就介紹一下如何顯示網頁的源碼吧。
#! /usr/bin/python
#-*-coding: utf-8 -*-
import spynner
browser = spynner.Browser()
#創建一個瀏覽器對象
browser.hide()
#打開瀏覽器,並隱藏。
browser.load("http://www..com")
#browser 類中有一個類方法load,可以用webkit載入你想載入的頁面信息。
#load(是你想要載入的網址的字元串形式)
print browser.html.encode("utf-8")
#browser 類中有一個成員是html,是頁面進過處理後的源碼的字元串.
#將其轉碼為UTF-8編碼
open("Test.html", 'w+').write(browser.html.encode("utf-8"))
#你也可以將它寫到文件中,用瀏覽器打開。
browser.close()
#關閉該瀏覽器
通過這個程序,就可以比較容易的顯示webkit處理的頁面HTML源碼了。
spynner應用
下面介紹一下spynner的簡單應用,通過簡單的程序,可以獲取你在瀏覽器中看到的頁面的全部圖片。用HTMLParser、BeautifulSoup等都可以完成HTMLParser文檔的解析。而我選擇HTMParser。
#!/usr/bin/python
import spynner
import HTMLParser
import os
import urllib
class MyParser(HTMLParser.HTMLParser):
def handle_starttag(self, tag, attrs):
if tag == 'img':
url = dict(attrs)['src']
name = os.path.basename(dict(attrs)['src'])
if name.endswith('.jpg') or name.endswith('.png') or name.endswith('gif'):
print "Download.....", name
urllib.urlretrieve(url, name)
if __name__ == "__main__":
browser = spynner.Browser()
browser.show()
browser.load("http://www.artist.cn/snakewu1994/StyleBasis_Four/en_album_607236.shtml")
Parser = MyParser()
Parser.feed(browser.html)
print "Done"
browser.close()
通過這個程序,可以下載你在頁面上看到的全部圖片。簡單的幾行程序就完成了這個艱巨的任務。實現了圖片的批量處理。這真是Python語言的優勢,再艱巨的任務交給第三方吧。
③ python如何檢測是不是需要旋轉pdf
是的,1.導入PyPDF2模塊之後使用open()方法打開pdf文件並且調用Reader方法直接將這個pdf文件之中的所有頁面都給讀取出來,讀取出來之後返回的是一個可迭代對象。然後使用getPage()方法獲取其中的某一個頁面,代碼如下所示:
import PyPDF2
reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
page = reader.getPage(0)
2.以上代碼之中的page所返回的就是pdf文件第一頁,使用它去調用rotateClockwise()方法就能夠將其90度旋轉,示例如下:
page.rotateClockwise(180)
這個方法一次只能夠對一個頁面進行修改操作,並且參數必須為90度及其倍數。也就是只能選擇90、180、270、360這四個度數,而且選擇是順時針選擇的,旋轉之後的頁面會自動調整格式。
3.頁面旋轉完畢之後還需要實例化出來一個文件寫入對象,然後使用這個對象將修改旋轉後的頁面添加到原pdf文件之中。再打開一個新的pdf文件用來保存,然後使用write()方法將頁面寫入之後將其關閉掉就好了,代碼示例如下:
output = PyPDF2.PdfFileWriter()
outputStream = open ("b.pdf","wb")
output.write(outputStream)
outputStream.close()