當前位置:首頁 » 編程語言 » python採集

python採集

發布時間: 2022-01-19 05:26:16

Ⅰ 使用python採集網頁內容時那登錄那個網站,否則採集不了!請問怎麼實現python登錄後採集網頁

有些網頁需要你登錄之後才可以訪問,你需要提供賬戶和密碼。
只要在發送http請求時,帶上含有正常登陸的cookie就可以了。
1.首先我們要先了解cookie的工作原理。
Cookie是由伺服器端生成,發送給User-Agent(一般是瀏覽器),瀏覽器會將Cookie的key/value保存到某個目錄下的文本文件內,下次請求同一網站時就發送該Cookie給伺服器(前提是瀏覽器設置為啟用cookie)。Cookie名稱和值可以由伺服器端開發自己定義,對於JSP而言也可以直接寫入jsessionid,這樣伺服器可以知道該用戶是否合法用戶以及是否需要重新登錄等。
2.之後我們要獲取到用戶正常登錄的cookie.
python提供了cookieJar的庫,只要把cookieJar的實例作為參數傳到urllib2的一個opener裡面。
然後訪問一次登錄的頁面,cookie就已經保存下來了。之後通過這個實例訪問所有的頁面都帶有正常登陸的cookie了。
以人人網為例子。
#encoding=utf-8
import urllib2
import urllib
import cookielib
def renrenBrower(url,user,password):
#登陸頁面,可以通過抓包工具分析獲得,如fiddler,wireshark
login_page = "http://www.renren.com/PLogin.do"
try:
#獲得一個cookieJar實例
cj = cookielib.CookieJar()
#cookieJar作為參數,獲得一個opener的實例
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#偽裝成一個正常的瀏覽器,避免有些web伺服器拒絕訪問。
opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
#生成Post數據,含有登陸用戶名密碼。
data = urllib.urlencode({"email":user,"password":password})
#以post的方法訪問登陸頁面,訪問之後cookieJar會自定保存cookie
opener.open(login_page,data)
#以帶cookie的方式訪問頁面
op=opener.open(url)
#讀取頁面源碼
data= op.read()
return data
except Exception,e:
print str(e)
#訪問某用戶的個人主頁,其實這已經實現了人人網的簽到功能。
print renrenBrower("http://www.renren.com/home","用戶名","密碼")

Ⅱ python網路數據採集 用python寫網路爬蟲 哪個好

寫python爬蟲2年多了,主要用的scrapy。關於python3,還沒有開始學;在這方面,我算是傳統的。一直在思考什麼時候轉python3。我主要關注的是我常用的python庫是否支持,一旦支持,就立刻轉python3.從最早的django、MySQLdb、PIL(Pillow)不支持,但現在這三者都支持了。所以在做web項目的時候是可以直接用python3了。所以現在的計劃是今年下半年轉python3。

說回爬蟲。scrapy確實使用者眾,可惜還不支持python3。所以現在的爬蟲項目還是用python2.7。現在用著非常順手。我的思路是,用django開發業務邏輯,根據業務邏輯建立的model,用scrapy抓取。是的,我的項目將django和scrapy代碼放在一個repo了。也可以分開。另外,scrapy的調度使用的是celery,所有爬蟲的調度時間和頻率都是用celery控制的。django、scrapy、celery是我做開發的三大法器。

如果你不想使用scrapy等框架,像上面的回答一樣,用一些請求庫和解析庫也能搭建出來。但我傾向於用django、celery、scrapy搭建通用的抓取系統。簡單說,用django建立模型,scrapy做一些常用爬蟲,規則定義模塊;celery制定調度策略,可以非常快地建立一套系統。

Ⅲ python如何能採集多個攝像頭的數據

可以,用PYQT+CV2,四個USB連接成功,程序如下,UI要自己搞了,放不下
# -*- coding: utf-8 -*-
import sys#, time
from PyQt5 import QtWidgets
from PyQt5.QtCore import QTimer, QThread, pyqtSignal
from Ui_cv2ui_thread import Ui_MainWindow
import cv2 as cv
from PyQt5.QtGui import QImage, QPixmap
from PyQt5.QtWidgets import (QApplication, QDialog, QFileDialog, QGridLayout,
QLabel, QPushButton, QColorDialog)
import numpy as np
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent=parent)
self.setupUi(self) #這個一定要在這個最前面位置
# define the slot for pushbutton to save the merged image
self.pushButton.clicked.connect(self.savemergeimage)
self.img = np.ndarray(()) #空的numpy array
self.img1 = np.ndarray(())
self.img2= np.ndarray(())
self.img3= np.ndarray(())
self.img4= np.ndarray(())
self.img4= np.empty([960,1280, 3], int)
self.cap = cv.VideoCapture(3) #注意,由大開到小,很重要
self.cap.set(3, 640) # setup the resolution of CCD
self.cap.set(4, 480)
ret, self.img=self.cap.read()
self.cap1 = cv.VideoCapture(2)
self.cap1.set(3, 640)
self.cap1.set(4, 480)
ret, self.img1=self.cap1.read()
self.cap2 = cv.VideoCapture(1)
self.cap2.set(3, 640)
self.cap2.set(4, 480)
ret, self.img2=self.cap2.read()
self.cap3 = cv.VideoCapture(0)
self.cap3.set(3, 640)
self.cap3.set(4, 480)
ret, self.img3=self.cap3.read()
#time.sleep(1)也許需要延遲,等他准備好
# 初始化一個定時器,在其他條件下用的
#self.timer = QTimer(self)
# 實例化一個線程
self.work0= WorkThread()
self.work0.trigger.connect(self.ccd2)
# 定義時間任務是一次性任務就設定下一行
#self.timer.setSingleShot(True)
# 啟動時間任務,注意一致性
self.work0.start()
# 實例化一個線程
self.work= WorkThread()
# 多線程的信號觸發連接到ccd3
self.work.trigger.connect(self.ccd3)
self.work.start()
# 實例化一個線程
self.work2 = WorkThread()
# 多線程的信號觸發連接到ccd4
self.work2.trigger.connect(self.ccd4)
self.work2.start()
# 實例化一個線程
self.work3 = WorkThread()
# 多線程的信號觸發連接到ccd1
self.work3.trigger.connect(self.ccdmerge)
self.work3.start()
self.work4 = WorkThread()
# 多線程的信號觸發連接到ccd1
self.work4.trigger.connect(self.ccd1)
self.work4.start()
def refreshShowa(self):#顯示ccd1到label1
# 提取圖像的尺寸和通道, 用於將opencv下的image轉換成Qimage
height, width, channel = self.img.shape
bytesPerLine = 3 * width
self.qImg = QImage(self.img.data, width, height, bytesPerLine,
QImage.Format_RGB888).rgbSwapped()
# 將Qimage顯示出來
self.label.setPixmap(QPixmap.fromImage(self.qImg))
def refreshShowb(self):#顯示ccd2到label2
# 提取圖像的尺寸和通道, 用於將opencv下的image轉換成Qimage
height, width, channel = self.img1.shape
bytesPerLine = 3 * width
self.qImg1 = QImage(self.img1.data, width, height, bytesPerLine,
QImage.Format_RGB888).rgbSwapped()
# 將Qimage顯示出來
self.label_2.setPixmap(QPixmap.fromImage( self.qImg1))
def refreshShowc(self):#顯示ccd3到label3
# 提取圖像的尺寸和通道, 用於將opencv下的image轉換成Qimage
height, width, channel = self.img2.shape
bytesPerLine = 3 * width
self.qImg2 = QImage(self.img2.data, width, height, bytesPerLine,
QImage.Format_RGB888).rgbSwapped()
# 將Qimage顯示出來
self.label_3.setPixmap(QPixmap.fromImage( self.qImg2))
def refreshShowd(self):#顯示ccd4到label4
# 提取圖像的尺寸和通道, 用於將opencv下的image轉換成Qimage
height, width, channel = self.img3.shape
bytesPerLine = 3 * width
self.qImg3 = QImage(self.img3.data, width, height, bytesPerLine,
QImage.Format_RGB888).rgbSwapped()
# 將Qimage顯示出來
self.label_4.setPixmap(QPixmap.fromImage( self.qImg3))
def refreshShowe(self):#顯示合並的影像到label6
# 提取圖像的尺寸和通道, 用於將opencv下的image轉換成Qimage
height, width, channel = self.img4.shape
bytesPerLine = 3 * width
self.qImg4 = QImage(self.img4.data, width, height, bytesPerLine,
QImage.Format_RGB888).rgbSwapped()
# 將Qimage顯示出來
self.label_6.setPixmap(QPixmap.fromImage( self.qImg4))
def ccd1(self):
self.cap.set(3, 640)
self.cap.set(4, 480)
ret, self.img = self.cap.read()
self.refreshShowa()
# 啟動另一個線程
self.work0.start()#注意一致性
def ccd2(self, str):
self.cap1.set(3, 640)
self.cap1.set(4, 480)
ret, self.img1 = self.cap1.read()
self.refreshShowb()
self.work.start()#注意一致性
def ccd3(self, str):
self.cap2.set(3, 640)
self.cap2.set(4, 480)
ret, self.img2= self.cap2.read()
self.refreshShowc()
self.work2.start()#注意一致性
def ccd4(self, str):
self.cap3.set(3, 640)
self.cap3.set(4, 480)
ret, self.img3 = self.cap3.read()
self.refreshShowd()
self.work3.start()#注意一致性
def ccdmerge(self, str):
self.img4=np.hstack((self.img, self.img1))
self.img4=np.vstack((self.img4, np.hstack((self.img2, self.img3))))
#print ('here is a merge process') 可以用來判斷多線程的執行
self.refreshShowe() #later to remove the remark
self.work4.start()#注意一致性
def savemergeimage(self):
# 調用存儲文件dialog
fileName, tmp = QFileDialog.getSaveFileName(
self, 'Save Image', './__data', '*.png *.jpg *.bmp', '*.png')
if fileName == '':
return
if self.img.size == 1:
return
# 調用opencv寫入圖像
cv.imwrite(fileName,self.img4)
class WorkThread(QThread): #多線程核心,非常重要
# 定義一個信號
trigger = pyqtSignal(str)
def __int__(self):
# 初始化函數,默認
super(WorkThread, self).__init__()
def run(self):
self.trigger.emit('')
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())

Ⅳ 微信聊天記錄使用python爬蟲到底能採集嗎

首先,下載互盾蘋果恢復大師,先安裝好備用。
第二,打開「互盾蘋果恢復大師」軟體,看到界面上「從iTunes備份文件中恢復」,點擊即可。
第三,此時你可以看到軟體正在掃描手機數據,等待掃描完成即可。
第四,掃描完成後,可以看到界面上有「微信」、「簡訊」等欄目顯示,點擊「微信」即可恢復微信的內容。
最後,點擊「微信」後可以在右側直接看到內容,也可以選擇「導出」。

Ⅳ 對於數據抓取和採集,是用python好還是php

1. python不是腳本語言,雖然它是動態解釋的。它可以完成系統級的開發。
2. python是跨平台的,你可以運用python在mac,在linux,在win下,甚至是s60手機中開發軟體;PHP沒有這些能力。
3. 從語法上說python的語法蜜糖更多些,語言結構簡練,最簡單的,PHP的就比較復雜繁瑣。
4. web開發上,PHP應用較廣,有很多現成的代碼和模版,python這方面欠缺,雖然它有很多很好的框架。比如django。
5. python因其應用范圍,學習時間更長,當然如果你只玩網站建設,像有人說的webpy學習周期很短,基本上在瀏覽器中就能完成基本的建站工作。
6. 如果要學習編程技術,建議python。如果想盡快出網站建議PHP。

Ⅵ 學python可以編輯採集器嗎

python完全可以勝任這個工作,它很適合大數據操作的

Ⅶ python 做監控數據採集,怎麼做.新手請教

這么具體的問題,找通用demo很難啊,個人覺得問題的難點不在Python。
1. 獲取什麼伺服器性能數據和如何獲取,可以請教公司內部運維。
2. 獲取什麼資料庫性能數據和如何獲取,可以請教公司內部DBA。
3. 以上兩點搞定了,才能確定臨時數據存儲結構和最終資料庫表結構。

以上三點是關鍵,Python的事情就簡單多了,提供一種思路:一分鍾一次,實時性不高,每台伺服器用cron部署一個a.py,用於獲取性能數據,在某
一台伺服器有一個b.py,負責獲取所有伺服器a.py產生的數據,然後寫入資料庫;a.py如何上報到b.py取決於你擅長什麼,如果熟悉網路編程,用
a.py做客戶端上報到服務端b.py,如果熟悉shell的文件同步(如rsync),a.py只寫本地文件,b.py調用c.sh(封裝rsync)
拉取遠程文件。

如果解決了您的問題請採納!
如果未解決請繼續追問!

Ⅷ 如何利用python對網頁的數據進行實時採集並輸出

這讓我想到了一個應用場景,在實時網路徵信系統中,通過即時網路爬蟲從多個信用數據源獲取數據。並且將數據即時注入到信用評估系統中,形成一個集成化的數據流。

可以通過下面的代碼生成一個提取器將標準的HTML DOM對象輸出為結構化內容。

圖片來自集搜客網路爬蟲官網,侵刪。

Ⅸ 如何用最簡單的Python爬蟲採集整個網站

採集網站數據並不難,但是需要爬蟲有足夠的深度。我們創建一個爬蟲,遞歸地遍歷每個網站,只收集那些網站頁面上的數據。一般的比較費時間的網站採集方法從頂級頁面開始(一般是網站主頁),然後搜索頁面上的所有鏈接,形成列表,再去採集到的這些鏈接頁面,繼續採集每個頁面的鏈接形成新的列表,重復執行。

Ⅹ 基於python數據採集與處理

數據採集作為信息獲取的主要方法,被廣泛應用於電力監測、航空航天、生物醫學、電子通信等測控領域。
針對LabVIEW數據採集系統整體架構以及系統軟體設計進行了分析,希望能藉助LabVIEW豐富的函數庫,易於進行系統功能擴展。

熱點內容
存儲上市龍頭 發布:2024-11-15 14:52:14 瀏覽:37
我的世界伺服器怎麼重置教學 發布:2024-11-15 14:52:13 瀏覽:122
C語言tf 發布:2024-11-15 14:36:22 瀏覽:810
違反密碼法是什麼意思 發布:2024-11-15 14:36:20 瀏覽:920
androidmp3錄音 發布:2024-11-15 14:32:50 瀏覽:493
英朗自動擋哪個配置最好 發布:2024-11-15 14:27:44 瀏覽:253
編譯原理斷言有哪幾種 發布:2024-11-15 14:25:29 瀏覽:200
資料庫數據重復 發布:2024-11-15 14:23:17 瀏覽:781
安卓端開發用什麼IDE 發布:2024-11-15 14:13:51 瀏覽:554
阿里雲查看訪問ip 發布:2024-11-15 14:08:58 瀏覽:544