1. 怎麼用八爪魚採集微博點贊數據呢,大家有沒有類似的規則呀
我之前試過配置八爪魚來搜集這些信息,但是發現採集流程的設計總是出問題,最後改成了用Python爬蟲抓取,建議你也試一下。
方法:使用Python中的scrapy工具來抓取所需要的數據,如果要提高抓取速度的話,還可以用redis開啟多線程抓取。(這里有一個現成的參考項目網頁鏈接,只需要想好你想抓取的數據,按照步驟修改相應的代碼就能大量抓取微博數據了。)
希望能對你有所幫助~
2. 如何利用八爪魚抓取劍魚招投標數據
抓取監控招標信息就應該用網站資訊監控工具(SiteMonitor),把招標網站網址添加到軟體中,可以添加多個,這樣只要這些招標網站有新的招標信息,馬上就能採集到並發出提醒,還可以按關鍵詞過濾。
3. 用八爪魚採集數據很難用,朋友說前嗅的爬蟲比較好用、想聽聽大家的意見
八爪魚限制最大的就是採集速度。我用他們的軟甲下載的官方採集大眾點評的模板,一分鍾十條數據,這是有多慢。。簡直無話可說。前嗅採集速度是同類型軟體里最快的,建議學習一下教程,可以從網上搜搜。希望採納。
4. 用八爪魚抓取來的數據可以用來做什麼
數據有什麼用?
我舉一個更簡單的例子,這個電影大家前段時間看過嗎?叫《小時代》,我們抽樣了十萬用戶,微博裡面對小時代的用戶數據進行了分析,我們發現,北上廣這些地方的人幾乎沒有人評論這件事情,評論的人基本上都在湖南、湖北、江西、浙江這樣一些省份,所以我們是不是可以說,把小時代的投放戰略放在這些省會更好。其中,女性佔到幾乎80%以上,而男性只佔很少的數量,所以如果你要投廣告的話,在小時代裡面,女性用品的廣告是不是更值一點。在所有評論當中,你發現謝霆鋒、至上勵合這些人的粉絲出現的特別多,《小時代2》裡面加上這些人的加盟是不是讓收視率更上一層樓?十萬個關注用戶裡面,排在前面無益於郭敬明、柯震東,還有快樂大本營也在十萬個人關注的裡面,我們《小時代2》是不是可以跟《快樂大本營》做一次活動,因為他們的粉絲是重合的。這些都是關於大數據的分析。
5. 八爪魚採集器該怎麼用
八爪魚採集器使用方法:
1、打開八爪魚採集器的客戶端,登陸軟體之後新建一個任務,打開你要採集的網站地址。這里我自己示範的原創設計手稿的採集。
2、進入到設計工作流程環節,在界面瀏覽器那輸入你要採集的網址,點擊打開,你就能看到你要採集的網站界面,由於這個網址存在多頁內容需要採集,我們再設置採集規則的時候,可以先建立翻頁循環,先把滑鼠選擇頁面上的【下一頁】按鈕,在彈出的任務對話框,選擇高級選項中的【循環點擊下一頁】,軟體會自動建立一個翻頁循環。
3、建好翻頁循環好,就是採集當前頁上的內容,我要採集圖片的URL,就選中一個圖片,然後單擊,軟體會自動彈出對話框,先建立一個元素循環列表。當前頁面的所有元素都被抓取後,循環列表則建立完成。
4、設置要抓取的內容,選擇元素循環列表中的任意一個元素,在瀏覽器內找到該元素對應的圖片,點擊後彈出對話框,選擇【抓取這個元素的圖片地址】為欄位1,同時我為了方便識別,還抓取了欄位2為圖片標題名稱,設置原理同圖片地址。
5、檢查一下,翻頁循環框應該將產品循環框嵌套在內,表示,先抓取完當前一整頁的圖片URL後再翻頁。
6、設置執行計劃後,就可以開始採集了,單擊採集的話,直接點擊【完成】步驟下的【檢查任務】,開始運行任務。採集完畢後可以直接下載成EXCEL的文件。
7、將URL轉換為圖片,這里用八爪魚圖片轉換工具,將EXCEL導入之後,就可以自動等待系統將圖片下載下來了!
6. python可以爬取什麼數據
一、爬取我們所需要的一線鏈接
channel_extract.py
這里的一線鏈接也就是我們所說的大類鏈接:
from bs4 import BeautifulSoupimport requests
start_url = 'http://lz.ganji.com/wu/'host_url = 'http://lz.ganji.com/'def get_channel_urls(url):
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text, 'lxml')
links = soup.select('.fenlei > dt > a') #print(links)
for link in links:
page_url = host_url + link.get('href')
print(page_url)#get_channel_urls(start_url)channel_urls = '''
http://lz.ganji.com/jiaju/
http://lz.ganji.com/rironghuo/
http://lz.ganji.com/shouji/
http://lz.ganji.com/bangong/
http://lz.ganji.com/nongyongpin/
http://lz.ganji.com/jiadian/
http://lz.ganji.com/ershoubijibendiannao/
http://lz.ganji.com/ruanjiantushu/
http://lz.ganji.com/yingyouyunfu/
http://lz.ganji.com/diannao/
http://lz.ganji.com/xianlipin/
http://lz.ganji.com/fushixiaobaxuemao/
http://lz.ganji.com/meironghuazhuang/
http://lz.ganji.com/shuma/
http://lz.ganji.com/laonianyongpin/
http://lz.ganji.com/xuniwupin/
'''
那麼拿我爬取的58同城為例就是爬取了二手市場所有品類的鏈接,也就是我說的大類鏈接;
找到這些鏈接的共同特徵,用函數將其輸出,並作為多行文本儲存起來。
二、獲取我們所需要的詳情頁面的鏈接和詳情信息
page_parsing.py
1、說說我們的資料庫:
先看代碼:
#引入庫文件from bs4 import BeautifulSoupimport requestsimport pymongo #python操作MongoDB的庫import reimport time#鏈接和建立資料庫client = pymongo.MongoClient('localhost', 27017)
ceshi = client['ceshi'] #建ceshi資料庫ganji_url_list = ceshi['ganji_url_list'] #建立表文件ganji_url_info = ceshi['ganji_url_info']123456789101112
2、判斷頁面結構是否和我們想要的頁面結構相匹配,比如有時候會有404頁面;
3、從頁面中提取我們想要的鏈接,也就是每個詳情頁面的鏈接;
這里我們要說的是一個方法就是:
item_link = link.get('href').split('?')[0]12
這里的這個link什麼類型的,這個get方法又是什麼鬼?
後來我發現了這個類型是
<class 'bs4.element.Tab>1
如果我們想要單獨獲取某個屬性,可以這樣,例如我們獲取它的 class 叫什麼
print soup.p['class']
#['title']12
還可以這樣,利用get方法,傳入屬性的名稱,二者是等價的
print soup.p.get('class')#['title']12
下面我來貼上代碼:
#爬取所有商品的詳情頁面鏈接:def get_type_links(channel, num):
list_view = '{0}o{1}/'.format(channel, str(num)) #print(list_view)
wb_data = requests.get(list_view)
soup = BeautifulSoup(wb_data.text, 'lxml')
linkOn = soup.select('.pageBox') #判斷是否為我們所需頁面的標志;
#如果爬下來的select鏈接為這樣:div.pageBox > ul > li:nth-child(1) > a > span 這里的:nth-child(1)要刪掉
#print(linkOn)
if linkOn:
link = soup.select('.zz > .zz-til > a')
link_2 = soup.select('.js-item > a')
link = link + link_2 #print(len(link))
for linkc in link:
linkc = linkc.get('href')
ganji_url_list.insert_one({'url': linkc})
print(linkc) else:
4、爬取詳情頁中我們所需要的信息
我來貼一段代碼:
#爬取趕集網詳情頁鏈接:def get_url_info_ganji(url):
time.sleep(1)
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text, 'lxml') try:
title = soup.select('head > title')[0].text
timec = soup.select('.pr-5')[0].text.strip()
type = soup.select('.det-infor > li > span > a')[0].text
price = soup.select('.det-infor > li > i')[0].text
place = soup.select('.det-infor > li > a')[1:]
placeb = [] for placec in place:
placeb.append(placec.text)
tag = soup.select('.second-dt-bewrite > ul > li')[0].text
tag = ''.join(tag.split()) #print(time.split())
data = { 'url' : url, 'title' : title, 'time' : timec.split(), 'type' : type, 'price' : price, 'place' : placeb, 'new' : tag
}
ganji_url_info.insert_one(data) #向資料庫中插入一條數據;
print(data) except IndexError: 21222324252627282930
四、我們的主函數怎麼寫?
main.py
看代碼:
#先從別的文件中引入函數和數據:from multiprocessing import Poolfrom page_parsing import get_type_links,get_url_info_ganji,ganji_url_listfrom channel_extract import channel_urls#爬取所有鏈接的函數:def get_all_links_from(channel):
for i in range(1,100):
get_type_links(channel,i)#後執行這個函數用來爬取所有詳情頁的文件:if __name__ == '__main__':# pool = Pool()# # pool = Pool()# pool.map(get_url_info_ganji, [url['url'] for url in ganji_url_list.find()])# pool.close()# pool.join()#先執行下面的這個函數,用來爬取所有的鏈接:if __name__ == '__main__':
pool = Pool()
pool = Pool()
pool.map(get_all_links_from,channel_urls.split())
pool.close()
pool.join()
五、計數程序
count.py
用來顯示爬取數據的數目;
import timefrom page_parsing import ganji_url_list,ganji_url_infowhile True: # print(ganji_url_list.find().count())
# time.sleep(5)
print(ganji_url_info.find().count())
time.sleep(5)
7. 為什麼說八爪魚採集器是最好用的網頁數據採集器
因為八爪魚採集器和市面上其他採集軟體不同的是,八爪魚採集器沒有繁雜的採集規則設置,通過滑鼠點擊幾次就可以成功配置一個採集任務,把體驗做到了極簡,大幅度提高了工作效率。
同時具有以下三大優勢:
1、任何人都可以使用
還在研究網頁源代碼和抓包工具嗎?現在不用了,會上網就能採集,所見即所得的界面,可視化流程,無需懂技術,點點滑鼠,2分鍾即可快速入門。
2、任何網站都可以採集
不僅使用簡單,而且功能強大:點擊,登陸,翻頁,甚至識別驗證碼,當網頁出錯誤,或者多套模版完全不一樣的時候,還可以根據不同情況做不同的處理。
3、雲採集,關機也可以
配置好採集任務,就可以關機了,任務可以在雲端執行,數量龐大的企業雲,24*7不間斷運行,再也不用擔心IP被封,網路中斷了,還能瞬間採集大量數據。
8. 八爪魚採集器 採集的數據有什麼用
八爪魚採集器採集到的數據信息,可以直接上傳到數多多平台,賺取多多幣,
根據需要可以進行數據採集、整合、清洗、分析,從而得到想要的信息。
比如:採集到的電商網站產品的評論,可以通過上面的步驟,分析得到用戶的喜好和需求,
產品的不足等等信息,再利用這些信息就可以進行產品的改進。
9. 想學慣用python寫網路爬蟲,有專門介紹的書籍嗎
這方面沒有吧,我是根據網上的博客自己寫的一個小的代碼。。。。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# -*- coding:utf-8 -*-#
#-python 2.7-#
import shutil
import urllib
import urllib2
import re,os,glob,string,sys
#=====================================================#
# MAIN #
#=====================================================#
def main():
#---also canset before the main() function---#
reload(sys)
sys.setdefaultencoding("utf-8" )
#---------------------------------------------#
global j #--global j is the name of the '.txt' file--#
j=1
url_home='http://www.qiushike.com'
url_lists=['/8hr/page/','/hot/page/','/history/page/']
path=os.getcwd()
ifos.path.exists(path+'\DUANZI'):
shutil.rmtree(path+'\DUANZI')
os.mkdir('DUANZI')
for url_listin url_lists:
ALL_CON(url_list,url_home)
#=====================================================#
# GET URL #
#=====================================================#
def ALL_CON(url1,url2):
i=1
lists=[]
while i:
# printi #----use for debug---#
url_real=url2+url1+str(i)
list1=GetPage(url_real)
DuanZi(list1)
if list1not in lists:
lists.append(list1)
i+=1
continue
else:
break
#======================================================#
# GET HTML CODE #
#======================================================#
def GetPage(url):
headers ={'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/50.0.2652.2 Safari/537.36'}
req =urllib2.Request(url,headers = headers)
myResponse = urllib2.urlopen(req)
myResponse=myResponse.read()
myResponse=myResponse.decode('utf-8')
myResponse=re.sub('','',myResponse)
myResponse=re.sub('\t','',myResponse)
myResponse=re.sub('\n','',myResponse)
#---can usere.compile() instand of re.sub()---#
findall_anzi=re.findall('<divclass="articleblockuntaggedmb15".*?<divclass="single-clear">',myResponse)
#---find allclass='article block untagged mb15' in HTML code &&return a list----#
i=0
whilei<len(findall_anzi):
iffindall_anzi[i].find('<imgsrc=') == -1:
i+=1
continue
else:
delfindall_anzi[i]#-----delete imagine substance----#
i+=1
findall_list=''.join(findall_anzi)
returnfindall_list
#===================================================#
# WRITE IN TXT FILE #
#===================================================#
def DuanZi(list1):
path=os.getcwd()
os.chdir(path+'\DUANZI')
anzis=[]
anzi=re.compile('<divclass="content">.*?</div>')
anzis=anzi.findall(list1)
txt_last=[]
global j
i=1
for x inanzis:
txt_name=str(j)+'.txt'
fp=open(txt_name,'w')
list2=[]
list2=(re.sub('<.*?>','',x)).split('"')#-----gain all the chianese below---#
txt_last=''.join(list2)
fp.write(txt_last)
fp.close()
i+=1
j+=1
os.chdir(path)
#============RUN===========================#
if __name__ == '__main__':
main()
上面這些代碼,你只要改一下User-Agent的值就應該可以運行了
10. 八爪魚採集器能取代python爬蟲嗎
當然不能, python 是一門編程語言, 它可以做出更加靈活的操作, 但是代價是你不能像使用八爪魚一樣簡單。 python 寫爬蟲有他的優點,靈活 這是八爪魚無法取代的, 所以我的結論是 八爪魚採集器不能取代python爬蟲