Python如何利用软件爬取数据及函数的定义及多种参数传递方式[图]

本文介绍了Python爬取数据的非编程方法,如使用Microsoft Excel抓取网页数据,并探讨了Python中函数的定义、参数传递方式,包括位置实参、关键字实参、默认值等。
摘要由CSDN通过智能技术生成

一、Python不懂代码也能爬取数据?试试这几个工具
前天,有个同学加我微信来咨询我:
“猴哥,我想抓取近期5000条新闻数据,但我是文科生,不会写代码,请问该怎么办?”
猴哥有问必答,对于这位同学的问题,我给安排上。
先说说获取数据的方式:一是利用现成的工具,我们只需懂得如何使用工具就能获取数据,不需要关心工具是怎么实现。打个比方,假如我们在岸上,要去海上某个小岛,岸边有一艘船,我们第一想法是选择坐船过去,而不会想着自己来造一艘船再过去。

Python如何利用软件爬取数据及函数的定义及多种参数传递方式[图]

第二种是自己针对场景需求做些定制化工具,这就需要有点编程基础。举个例子,我们还是要到海上某个小岛,同时还要求在30分钟内将1顿货物送到岛上。
因此,前期只是单纯想获取数据,没有什么其他要求的话,优先选择现有工具。
可能是Python近来年很火,加上我们会经常看到别人用Python来制作网络爬虫抓取数据。从而有一些同学有这样的误区,想从网络上抓取数据就一定要学Python,一定要去写代码。
其实不然,猴哥介绍几个能快速获取网上数据的工具。
MicrosoftExcel:
你没有看错,就是Office三剑客之一的Excel。Excel是一个强大的工具,能抓取数据就是它的功能之一。我以耳机作为关键字,抓取京东的商品列表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python的多线程模块`threading`来实现多线程爬取数据,并使用`csv`模块将数据写入CSV文件。 以下是一个示例代码,用于爬取豆瓣电影Top250的电影名称、评分和链接,并将数据写入CSV文件中。 ```python import requests import csv import threading from bs4 import BeautifulSoup def get_movie_info(start): url = f'https://movie.douban.com/top250?start={start}' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') movie_list = soup.find(class_='grid_view').find_all('li') for movie in movie_list: title = movie.find(class_='title').text rating = movie.find(class_='rating_num').text link = movie.find('a')['href'] movie_info = [title, rating, link] write_to_csv(movie_info) def write_to_csv(movie_info): with open('douban_top250.csv', 'a', newline='', encoding='utf-8-sig') as f: writer = csv.writer(f) writer.writerow(movie_info) if __name__ == '__main__': threads = [] for i in range(0, 250, 25): t = threading.Thread(target=get_movie_info, args=(i,)) threads.append(t) t.start() for t in threads: t.join() ``` 在上面的代码中,我们首先定义了一个`get_movie_info`函数用于爬取每一页的电影信息。在函数中,我们使用`requests`模块发送HTTP请求,获取网页的HTML源代码,并使用`BeautifulSoup`模块解析HTML文档,获取电影名称、评分和链接信息。 然后,我们定义了一个`write_to_csv`函数用于将获取到的电影信息写入CSV文件中。使用`csv`模块的`writer`函数将电影信息写入CSV文件。 在`if __name__ == '__main__':`中,我们创建了一个线程列表,并循环创建线程,每个线程负责爬取一页电影信息。我们使用`threading.Thread`函数创建线程,将`get_movie_info`函数作为线程的目标函数,并将页码作为参数传递函数。 然后,我们循环启动所有线程,等待所有线程完成后再退出程序。使用`join`函数等待所有线程完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值