日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux利用爬蟲技術實現(xiàn)網(wǎng)頁數(shù)據(jù)庫的抓取(linux抓取網(wǎng)頁數(shù)據(jù)庫)

隨著互聯(lián)網(wǎng)的不斷發(fā)展和普及,網(wǎng)頁數(shù)量和種類不斷增加,越來越多的信息需要被收集和整理。而網(wǎng)頁抓取技術正是用來實現(xiàn)這一目標的工具之一。Linux作為當今更受歡迎的操作系統(tǒng)之一,擁有強大的命令行界面和豐富的開源軟件,其應用領域也變得越來越廣泛。本文將介紹如何在Linux環(huán)境下使用爬蟲技術實現(xiàn)網(wǎng)頁數(shù)據(jù)庫的抓取。

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的茄子河網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

一、常用的網(wǎng)頁抓取工具

在Linux系統(tǒng)下,有許多強大的開源工具可以用來實現(xiàn)網(wǎng)頁抓取。以下列舉幾種常用的工具:

1. wget

wget是一種常用的命令行工具,用來從網(wǎng)絡上下載文件。它不僅可以下載整個網(wǎng)站,還可以指定下載某些文件或文件類型。wget不支持JavaScript和動態(tài)網(wǎng)頁抓取。

2. curl

curl是另一種常用的命令行工具,用來處理URL(Uniform Resource Locator)和相關的協(xié)議。它支持多種協(xié)議,包括HTTP、FTP、TP等。curl也支持JavaScript和動態(tài)網(wǎng)頁抓取。

3. scrapy

scrapy是一個Python開源的web爬蟲框架,可以用來抓取各種網(wǎng)站。它的核心是一個調(diào)度器,可以根據(jù)需求自行定義抓取規(guī)則,支持多線程抓取。

二、網(wǎng)頁抓取的基本流程

網(wǎng)頁抓取的基本流程如下:

1. 獲取網(wǎng)頁源碼

獲取網(wǎng)頁源碼是網(wǎng)頁抓取的之一步。在Linux系統(tǒng)中,可以使用wget或curl命令來獲取網(wǎng)頁源碼。如下所示:

使用wget命令獲取網(wǎng)頁源碼:

wget http://www.bdu.com

使用curl命令獲取網(wǎng)頁源碼:

curl http://www.bdu.com

2. 解析網(wǎng)頁源碼

獲取網(wǎng)頁源碼后,需要對其進行解析。解析網(wǎng)頁源碼的主要方式是使用正則表達式或XPath語法來提取所需的信息。對于難以解析的網(wǎng)頁,可以使用一些開源的HTML解析包來處理。Linux環(huán)境下的HTML解析包有BeautifulSoup、lxml等。

3. 存儲數(shù)據(jù)

網(wǎng)頁抓取完成后,需要將抓取到的數(shù)據(jù)存儲到數(shù)據(jù)庫中。常用的數(shù)據(jù)庫系統(tǒng)有MySQL、PostgreSQL等。

三、使用scrapy實現(xiàn)網(wǎng)頁抓取

為了更方便地進行網(wǎng)頁抓取,可以使用Python開源的web爬蟲框架scrapy。以下是使用scrapy實現(xiàn)網(wǎng)頁抓取的步驟:

1. 創(chuàng)建項目

使用如下命令創(chuàng)建一個名為myproject的scrapy項目:

scrapy startproject myproject

2. 創(chuàng)建spider

Spider是scrapy的核心組件之一,它定義了如何抓取和解析數(shù)據(jù)。使用如下命令創(chuàng)建一個名為myspider的spider:

scrapy genspider myspider http://www.example.com

其中,http://www.example.com是目標網(wǎng)站的地址。

3. 定義Item

Item是用來存儲抓取到的數(shù)據(jù)的容器。定義Item的方式如下:

import scrapy

class MyprojectItem(scrapy.Item):

title = scrapy.Field()

link = scrapy.Field()

desc = scrapy.Field()

其中,title、link和desc是需要抓取的三個字段。

4. 編寫Spider

Spider的作用是根據(jù)設定的規(guī)則,從指定的URL開始抓取數(shù)據(jù)。以下是一個簡單的Spider示例:

import scrapy

from myproject.items import MyprojectItem

class MyspiderSpider(scrapy.Spider):

name = ‘myspider’

allowed_domns = [‘example.com’]

start_urls = [‘http://www.example.com’]

def parse(self, response):

for sel in response.xpath(‘//ul/li’):

item = MyprojectItem()

item[‘title’] = sel.xpath(‘a(chǎn)/text()’).extract_first()

item[‘link’] = sel.xpath(‘a(chǎn)/@href’).extract_first()

item[‘desc’] = sel.xpath(‘text()’).extract_first()

yield item

其中,allowed_domns是指定的域名,start_urls是起始的URL。

5. 運行Spider

使用如下命令啟動Spider:

scrapy crawl myspider

Spider運行后,抓取到的數(shù)據(jù)將存儲在Item Pipeline中。

四、

網(wǎng)頁抓取技術在數(shù)據(jù)收集和整理方面具有重要的作用。Linux系統(tǒng)下有許多開源的工具和框架可供選擇,如wget、curl、scrapy等。使用scrapy框架可以更方便地進行網(wǎng)頁抓取,并將抓取到的數(shù)據(jù)存儲到數(shù)據(jù)庫中。在使用網(wǎng)頁抓取技術時,需要注意合法使用、遵守法律法規(guī)和相關規(guī)定,不得用于非法用途。

成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220

linux環(huán)境下python怎樣操作mysql數(shù)據(jù)庫

linux環(huán)境下python怎樣操作mysql數(shù)據(jù)庫呢?方法如下:

首先在Linux環(huán)境下安裝mysql-python

1、下載mysql-python

打開終端:

cd /usr/local

sudo wget

官網(wǎng)地址:

2、解壓

sudo tar -zxvf MySQL-python-1.2.2.tar.gz

cd MySQL-python-1.2.2

3、在安仔冊裝前需進行配置

a、修改setup_posix.py中的mysql_config.path為你mysql安裝目錄的mysql_config路徑

b、修改site.cfg中的threadsafe = False,去掉mysql_config前的注釋,并改為mysql_config = /usr/local/mysql/bin/mysql_config

c、執(zhí)行命令:

export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql

sudo ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so /usr/lib/libmysqlclient.so.14

sudo ldconfig (這個很重要,否則后面會報錯ImportError: libmysqlclient.so.14: cannot open shared object file)

4、編譯安裝

1)python setup.py build

若未成功的話,需手動安裝setuptools:

sudo apt-get install python-setuptools

2)sudo python setup.py install

5、測試

python

>>> import MySQLdb

沒有錯誤,則表示安裝成功了。

使用python操作MySQL

使用python連接MySQL,創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表格,插入/查詢數(shù)據(jù)。python_mysql.py代碼如下:

效果如圖:

若出現(xiàn)類似于此的警告:

/usr/local/lib/python2.6/dist-packages/MySQL_python-1.2.2-py2.6-linux-i686.egg/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated from sets import ImmutableSet

解決辦法如下:

找到上面路徑MySQLdb下的__init__.py文件

1) 在文件中 “__init__.py”中, 注釋掉:

from sets import ImmutableSet

class DBAPISet(ImmutableSet):

新增:

class DBAPISet(frozenset):

2) 在文件”converters.py”中,注釋掉 from sets import BaseSet, Set 這一句話。

3) 在文件”converters.py”中, 修改 其中的”Set” 成為念稿宏 “set” ( 只有兩個地敬高方需要修改,即大寫改小寫)

大概 line 45: return Set() 改為 return set()

大概 line 129: Set: Set2Str, 改為 set: Set2Str,

1.引入MySQLdb庫

import MySQLdb

2.和數(shù)據(jù)庫建立連接

conn=MySQLdb.connect(host=”localhost”,user=”root”,passwd=”sa”,db=”mytable”,charset=”utf8″)

提供的connect方法用來和數(shù)據(jù)庫建立連接,接收數(shù)個參數(shù),返回連接對象.

比較常用的參數(shù)包括

host:數(shù)據(jù)庫主機名.默認是用本地主機.

user:數(shù)據(jù)庫登陸名.默認是當前用戶.

passwd:數(shù)據(jù)庫登陸的秘密.默認為空.

db:要使用的數(shù)據(jù)庫名.沒有默認值.

port:MySQL服務使用的TCP端口.默認是3306.

charset:數(shù)據(jù)庫編碼.

然后,這個連接對象也提供了對事務操作的支持,標準的方法

commit() 提交

rollback() 回滾

3.執(zhí)行sql語句和接收返回值

cursor=conn.cursor()

n=cursor.execute(sql,param)

首先,我們用使用連接對象獲得一個cursor對象,接下來,我們會使用cursor提供的方法來進行工作.這些方法包括兩大類:1.執(zhí)行命令,2.接收返回值

cursor用來執(zhí)行命令的方法:

callproc(self, procname, args):用來執(zhí)行存儲過程,接收的參數(shù)為存儲過程名和參數(shù)列表,返回值為受影響的行數(shù)

execute(self, query, args):執(zhí)行單條sql語句,接收的參數(shù)為sql語句本身和使用的參數(shù)列表,返回值為受影響的行數(shù)

executemany(self, query, args):執(zhí)行單條sql語句,但是重復執(zhí)行參數(shù)列表里的參數(shù),返回值為受影響的行數(shù)

nextset(self):移動到下一個結果集

cursor用來接收返回值的方法:

fetchall(self):接收全部的返回結果行.

fetchmany(self, size=None):接收size條返回結果行.如果size的值大于返回的結果行的數(shù)量,則會返回cursor.arraysize條數(shù)據(jù).

fetchone(self):返回一條結果行.

scroll(self, value, mode=’relative’):移動指針到某一行.如果mode=’relative’,則表示從當前所在行移動value條,如果mode=’absolute’,則表示從結果集的之一行移動value條.

下面的代碼是一個完整的例子.

#使用sql語句,這里要接收的參數(shù)都用%s占位符.要注意的是,無論你要插入的數(shù)據(jù)是什么類型,占位符永遠都要用%s

sql=”insert into cdinfo values(%s,%s,%s,%s,%s)”

#param應該為tuple或者list

param=(title,singer,imgurl,url,alpha)

#執(zhí)行,如果成功,n的值為1

n=cursor.execute(sql,param)

#再來執(zhí)行一個查詢的操作

cursor.execute(“select * from cdinfo”)

#我們使用了fetchall這個方法.這樣,cds里保存的將會是查詢返回的全部結果.每條結果都是一個tuple類型的數(shù)據(jù),這些tuple組成了一個tuple

cds=cursor.fetchall()

#因為是tuple,所以可以這樣使用結果集

print cds

#或者直接顯示出來,看看結果集的真實樣子

print cds

#如果需要批量的插入數(shù)據(jù),就這樣做

sql=”insert into cdinfo values(0,%s,%s,%s,%s,%s)”

#每個值的為一個tuple,整個參數(shù)集組成一個tuple,或者list

param=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))

#使用executemany方法來批量的插入數(shù)據(jù).這真是一個很酷的方法!

n=cursor.executemany(sql,param)

4.關閉數(shù)據(jù)庫連接

需要分別的關閉指針對象和連接對象.他們有名字相同的方法

cursor.close()

conn.close()

以上方法就可以了。

另外,附MySQLdb的相關資料

更多關于MySQLdb的信息可以查這里:

mysqldb

使用PHP的cURL庫進行網(wǎng)頁抓取

使用模明仿PHP的cURL庫可以簡單和有效地去抓網(wǎng)頁 你只需要運行一個腳本 然后分析一下你所抓取的網(wǎng)頁 然后就可以以程序的方式得到你想要的數(shù)據(jù)了 無論是你想從從一個鏈接上取部分數(shù)據(jù) 或是取一個XML文件并把其導入數(shù)據(jù)庫 那怕就是簡單的獲取網(wǎng)頁內(nèi)容 cURL 是一個功能強大的PHP庫 本文主要講述如果使用這個PHP庫

  

啟用 cURL 設置

首先 我們得先要確定我們的PHP是否開啟了這個庫 你可以通過使用php_info()函數(shù)來得到這一信息

﹤?phpphpinfo();?﹥

  如果你可以在網(wǎng)頁上看到下面的輸出 那么表示cURL庫已被開啟

  如果你看到的話 那么你需要設置你的PHP并開啟這個庫 如果你是在Windows平臺下 那么非常簡單 你需要改一改你的php ini文件的設置 找到php_curl dll 并取消前面的分號注釋就行了 如下所示

//取消下在的注釋extension=php_curl dll

  如果你旦纖是在Linux下面 那么 你需要重新編譯你的PHP了 編輯時 你需要打開編譯參數(shù)——在configure命令上加上 –with curl 參數(shù)

  

一個小示例

  如果一切就緒 下面是一個小例程

﹤?php// 初始化一個 cURL 對象$curl = curl_init();

// 設置你需要抓取的URLcurl_setopt($curl CURLOPT_URL //cocre );

// 設置headercurl_setopt($curl CURLOPT_HEADER );

// 設置cURL 參數(shù) 要求結果保存到字符串中還是輸出到屏幕上槐鏈 curl_setopt($curl CURLOPT_RETURNTRANSFER );

// 運行cURL 請求網(wǎng)頁$data = curl_exec($curl);

// 關閉URL請求curl_close($curl);

// 顯示獲得的數(shù)據(jù)var_dump($data);

   

如何POST數(shù)據(jù)

  上面是抓取網(wǎng)頁的代碼 下面則是向某個網(wǎng)頁POST數(shù)據(jù) 假設我們有一個處理表單的網(wǎng)址// example /sendS php 其可以接受兩個表單域 一個是號碼 一個是短信內(nèi)容

﹤?php$phoneNumber =;$message = This message was generated by curl and php ;$curlPost = pNUMBER=urlencode($phoneNumber) &MESSAGE=urlencode($message) &SUBMIT=Send ;$ch = curl_init();curl_setopt($ch CURLOPT_URL // example /sendS php );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_POST );curl_setopt($ch CURLOPT_POSTFIELDS $curlPost);$data = curl_exec();curl_close($ch);?﹥

  從上面的程序我們可以看到 使用CURLOPT_POST設置HTTP協(xié)議的POST方法 而不是GET方法 然后以CURLOPT_POSTFIELDS設置POST的數(shù)據(jù)

 

 關于代理服務器

  下面是一個如何使用代理服務器的示例 請注意其中高亮的代碼 代碼很簡單 我就不用多說了

﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPPROXYTUNNEL );curl_setopt($ch CURLOPT_PROXY fakeproxy :);curl_setopt($ch CURLOPT_PROXYUSERPWD user:password );$data = curl_exec();curl_close($ch);?﹥

  關于SSL和Cookie

  關于SSL也就是HTTPS協(xié)議 你只需要把CURLOPT_URL連接中的//變成//就可以了 當然 還有一個參數(shù)叫CURLOPT_SSL_VERIFYHOST可以設置為驗證站點

  關于Cookie 你需要了解下面三個參數(shù)

  CURLOPT_COOKIE 在當面的會話中設置一個cookie

  CURLOPT_COOKIEJAR 當會話結束的時候保存一個Cookie

  CURLOPT_COOKIEFILE Cookie的文件

  

HTTP服務器認證

  最后 我們來看一看HTTP服務器認證的情況

﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPAUTH CURLAUTH_BASIC);curl_setopt(CURLOPT_USERPWD : )

$data = curl_exec();curl_close($ch);?﹥

linux下mysql 怎么查詢數(shù)據(jù)庫

mysql -u root -p

1:在終端下:mysql -V。 以下是代碼此沒笑片段:

$ mysql -V

2:在mysql中:mysql>察罩 status;

以下是代碼森含片段:

關于linux抓取網(wǎng)頁數(shù)據(jù)庫的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。

成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設計、網(wǎng)站建設、小程序制作、成都軟件開發(fā)、網(wǎng)頁設計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務,是專業(yè)的成都做小程序公司、成都網(wǎng)站建設公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。


網(wǎng)站欄目:Linux利用爬蟲技術實現(xiàn)網(wǎng)頁數(shù)據(jù)庫的抓取(linux抓取網(wǎng)頁數(shù)據(jù)庫)
標題URL:http://m.5511xx.com/article/cohcjdg.html