八爪鱼批量爬取html中的数据,网页数据如何批量采集_视频教程 - 八爪鱼采集器...

本视频介绍循环方式中的URL循环和文本循环。

URL循环适用场景:

在多个同类型的网页中,需要采集的字段相同。

例如:

https://movie.douban.com/subject/26387939/

https://movie.douban.com/subject/6311303/

https://movie.douban.com/subject/1578714/

在自定义模式的第一步--输入网址,即可输入多个同类型的网址,

直接手动输入,建议不超过1万条。文件/任务导入和批量生成,则支持100万条。

当输入多个网址时,八爪鱼会自动生成URL循环。

作用:

使用URL循环,云采集时将会自动拆分任务,将加快采集速度,减小被防采被封IP的概率。

对于详情页打开容易出错加载不全的网站,使用URL循环也是绝佳的规避方案。

文本循环适用场景:

网页有提供搜索框(或输入框),并支持输入关键词后点击搜索(不支持只能Enter回车的搜索方式)。

在搜索框中循环输入关键词,采集关键词搜索结果的信息。

作用:

1.在任务中可以一次性存储多个关键词,程序将依次使用每一个关键词,从而批量获取到所需数据。

2.文本循环的方式,在云采集时将支持任务拆分,将加快采集速度,减小被防采被封IP的概率。

以下是Python爬取知乎数据的代码实现,其使用了八爪鱼爬虫工具和数据预处理库pandas: ```python import requests import json import pandas as pd from octopus import Octopus # 设置请求头信息 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299' } # 构造请求url def get_url(keyword, offset): url = 'https://www.zhihu.com/api/v4/search_v3?t=general&q={}&correction=1&offset={}&limit=20&lc_idx=0&show_all_topics=0&search_hash_id='.format(keyword, offset) return url # 爬取知乎数据并保存为json文件 def crawl_data(keyword): otto = Octopus( concurrency=8, auto_start=True, expiration_in_seconds=120, raise_all_exceptions=True, worker_lifespan_in_seconds=120 ) result = [] for i in range(0, 100, 20): url = get_url(keyword, i) otto.enqueue(get_data, url) otto.wait() for res in otto.results(): result += res with open('zhihu.json', 'w', encoding='utf-8') as f: json.dump(result, f, ensure_ascii=False) # 解析json文件并使用pandas进行数据预处理 def process_data(): with open('zhihu.json', 'r', encoding='utf-8') as f: data = json.load(f) results = [] for item in data: result = {} result['问题'] = item['highlight']['title'] result['链接'] = 'https://www.zhihu.com/question/{}'.format(item['object']['question']['id']) result['答案'] = item['highlight']['description'] results.append(result) df = pd.DataFrame(results) df.to_excel('zhihu.xlsx', index=False) # 获取数据 def get_data(url): response = requests.get(url, headers=headers) data = response.json()['data'] result = [] for item in data: if item['object']['type'] == 'answer': result.append(item) return result if __name__ == '__main__': crawl_data('Python') process_data() ``` 此代码实现了爬取知乎关于“Python”的数据,并将数据保存成json文件,再使用pandas进行数据预处理,最终将结果保存成Excel文件。你可以根据自己的需求修改关键词以及保存的文件格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值