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爬虫