汇总:如何采集网站数据(如何快速抓取网页上的数据)
优采云 发布时间: 2022-11-24 06:11汇总:如何采集网站数据(如何快速抓取网页上的数据)
oooo971227
优势:
专注内容引流,精准营销获客!
温馨提示:
请说是在【小痞子】的网站上看到的。
How to collect website data(如何快速抓取网页数据)
无论是数据分析、数据建模甚至数据挖掘,我们都必须在做这些高级任务之前采集
数据。数据是数据工作的基础。没有数据,挖掘就没有意义。俗话说巧妇难为无米之炊,那么接下来我们就来说说爬行动物吧。
爬虫是采集
外部数据的重要方式。常用于竞争分析,部分爬虫也作为自己的业务使用。比如搜索引擎是爬虫应用最多的。当然,爬虫也不是无良,一不小心就可能变成面向监狱的编程。
1、什么是爬虫?
爬虫爬取一般针对特定的网站或APP,通过爬虫脚本或程序采集指定页面的数据。是指通过编程向Web服务器请求数据(HTML形式),然后解析HTML,提取出你想要的数据。
一般来说,爬虫需要掌握一门编程语言,以及HTML、Web服务器、数据库等方面的知识。建议从python入手,可以快速上手爬虫,还有很多第三方库可以快速上手并轻松执行网络爬虫。
" />
2、如何抓取网页
1.首先分析网页
按F12调出网页调试界面,可以在Element标签下看到对应的HTML代码。这些实际上是网页的代码。网页通过hmtl等源码解析,通过loading和rendering呈现如你所见。,就像你穿衣服化妆一样(手动滑稽)。
我们可以定位网页的元素。左上角有个小按钮。单击它并在网页上找到您要定位的位置。可以直接在这里定位源码,如下图:
我们可以修改源码看看,把定位到的源码【python】改成【我是帅哥】。哎,网页上会发生不同的变化。以上主要是为了科普。这主要是前端工程师的领域。你看到的都是前端的心血,而冰山之下是后端工程师的领地。
有点跑题了,言归正传,网页已经解析完毕,可以定位到你要爬取的元素内容了。接下来就是修改包,写爬虫脚本了。基本上网页上能看到的都可以爬取。你所看到的就是你得到的。
2、程序如何访问网页
大家可以点击网络按钮,看看我们在浏览器搜索输入框中输入一个关键词:python时的体验。涉及的专业内容可能过于复杂。你可能会觉得我输入一个关键词,网页给我返回了很多内容。其实就是本地客户端向服务端发送get请求,服务端解析内容。,经过三次TCP握手,四次挥手,网络安全,加密等等,最后安全的把内容返回给你本地的客户端,是不是感觉头开始有点大了,这样我们就可以愉快的上网络冲浪,工程师真的不容易~~
理解这些内容,有助于我们理解爬虫的机制。简单来说,就是模拟人登录网页,请求访问,找到返回的网页内容,下载数据的程序。刚才提到了网页网络的内容,常见的请求有两种:get和post。GET 请求将请求参数暴露在 URL 上,而 POST 请求参数则放在请求体中。POST 请求方法还对密码参数进行了加密。,相对安全。
" />
程序需要模拟请求头(Request Header)进行访问。我们在进行http请求时除了要提交一些参数外,还要定义一些请求头信息,比如Accept、Host、cookie、User-Agent等,主要是将爬虫程序伪装成合法请求获取情报内容。
爬行动物有点像*敏*感*词*。它们渗透到场所内部并提取我们想要的信息。不知道这里是怎么回事,skr~~~
3.接收请求返回的信息
r = requests.get('https://httpbin.org/get')r.status_code//返回200r.headers{ 'content-encoding': 'gzip', 'transfer-encoding': 'chunked', 'connection': 'close', 'server': 'nginx/1.0.4', 'x-runtime': '148ms', 'etag': '"e1ca502697e5c9317743dc078f67693f"', 'content-type': 'application/json' }import requestsr = requests.get('https://api.github.com/events')r.json()// 以上操作可以算是最基本的爬虫了,返回内容如下:[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...
通过解析返回的json字符串,可以得到想要的数据,恭喜~
三、Python自动化爬虫实战
接下来我们来一场豆瓣电影排行的爬虫实战:
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Wed Jul 31 15:52:53 2019@author: kaluosi"""import requestsimport reimport codecsfrom bs4 import BeautifulSoupfrom openpyxl import Workbookimport pandas as pd wb = Workbook()dest_filename = '电影.xlsx'ws1 = wb.activews1.title = "电影top250"DOWNLOAD_URL = 'http://movie.douban.com/top250/'def download_page(url): """获取url地址页面内容""" headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36' } data = requests.get(url, headers=headers).content return datadef get_li(doc): soup = BeautifulSoup(doc, 'html.parser') ol = soup.find('ol', class_='grid_view') name = [] # 名字 star_con = [] # 评价人数 score = [] # 评分 info_list = [] # 短评 for i in ol.find_all('li'): detail = i.find('div', attrs={'class': 'hd'}) movie_name = detail.find('span', attrs={'class': 'title'}).get_text() # 电影名字 level_star = i.find('span', attrs={'class': 'rating_num'}).get_text() # 评分 star = i.find('div', attrs={'class': 'star'}) star_num = star.find(text=re.compile('评价')) # 评价 info = i.find('span', attrs={'class': 'inq'}) # 短评 if info: # 判断是否有短评 info_list.append(info.get_text()) else: info_list.append('无') score.append(level_star) name.append(movie_name) star_con.append(star_num) page = soup.find('span', attrs={'class': 'next'}).find('a') # 获取下一页 if page: return name, star_con, score, info_list, DOWNLOAD_URL + page['href'] return name, star_con, score, info_list, Nonedef main(): url = DOWNLOAD_URL name = [] star_con = [] score = [] info = [] while url: doc = download_page(url) movie, star, level_num, info_list, url = get_li(doc) name = name + movie star_con = star_con + star score = score + level_num info = info + info_list #pandas处理数据 c = {'电影名称':name , '评论人数':star_con , '电影评分':score , '评论':info} data = pd.DataFrame(c) data.to_excel('豆瓣影评.xlsx')if __name__ == '__main__': main()
写在最后
最后,本文爬虫仅限于交流学习。
全行业全网霸屏引流推广
专注内容引流,精准获客
汇总:什么是网站采集?
网站管理员从互联网上采集
各种图片、笑话、新闻、技术等信息,然后进行分类、编辑,发布到自己的网站系统中。站长一般通过搜索引擎搜索各种关键词,得到目标网址,然后提取网页中的内容。关键字的组织决定了捕获内容的准确性和数量。由于内容来自不同的站点,因此提取内容的方法也不同。对于某一类信息,发布到网站系统的数据结构是相同的。
" />
网站管理员搜索站点,在主页上安排和索引相关内容。
企业从互联网上搜索电子邮件和电话号码,并能够查看与该信息相关的信息,以了解对象的基本情况。企业希望能够搜索到某一类别的客户信息,比如客户是女性,年龄在20到30岁之间等等。并且可以将采集到的对象信息保存到企业内部的客户管理系统中。
" />
企业需要了解某个产品的信息,希望得到该类产品的报价、生产厂家等,以及这些信息的对比。您还可以从制造商处获得报价和更多信息。希望这些信息可以存储在企业内部的ERP系统或其他系统中。