题目:
题目说明:
# 二、数据采集任务场景二(编程开发) ## 1、数据场景: ### 采集网站 http://117.73.11.244:9090/ ### chrome浏览器启动 启动chrome:/opt/google/chrome/google-chrome --no-sandbox ### python开发工具启动 启动pycharm:/home/pycharm-community-2020.1.1/bin/pycharm.sh ### 工程目录说明 工程目录是:/root/PycharmProjects/webcrawler ### 编程文件 代码文件路径: /root/PycharmProjects/webcrawler/src/webcrawler.py
题目要求:
2、采集要求 1)使用python采集一个指定网站(http://117.73.9.229:9090/)的首页。 2)使用指定的user-agent值包装http request header。 3)采集目标:使用XPath获取顶部菜单栏的“新闻公告”的超链接地址(URL) 4)将结果存放到csv格式的文件里。结果文件路径:/home/output/crawler_result.csv 5)结果文件的要求:存放顶部菜单栏的“新闻公告”的超链接地址(URL) user-agent值: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36 ## 3、提交的内容 1)代码文件:webcrawler.py 2)采集结果:crawler_result.csv
一、35分
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import urllib, time, os, base64, json
import re, sys
from urllib.request import urlopen
from lxml import etree
from urllib import request
import requests
def getPage(base_url):
try:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36"}
req = request.Request(base_url, headers=headers)
page = urllib.request.urlopen(req) # 5
content = page.read().decode("utf-8", "ignore").encode("utf-8",'ignore')
selector = etree.HTML(content)
menu_items = selector.xpath("//*[@id=\"head_nav_list\"]/li[5]/a") # 5
for item in menu_items:
writefile("/home/output/crawler_result.csv", item.attrib["href"]) # 2
except Exception as e: # 3
print("Failed to read from %s." % base_url)
print(sys.exc_info())
return False
def writefile(filename, content):
try:
fp = open(filename, 'a') # 5
fp.write(content + "\n") # 5
fp.close() # 5
except:
return False
now = time.strftime('%Y-%m-%d %X', time.localtime(time.time()))
try:
# 5
url = 'http://117.73.9.229:9090/'
getPage(url)
except Exception as e:
info = '%s\nError: %s' % (now, e)
writefile('Error.log', info)
print (info)
time.sleep(1)
二、15分
暂无数据
http://www.inspuredu.com/sysNews/list.html
题目:
题目说明:
# 一、数据采集任务场景一(工具定制题) 使用 apache httpd、filebeat、logstash、csv完成数据采集演示。 ## 1、数据场景: ### apache httpd: 运行目录:/app/httpd/ 配置文件:/etc/httpd24/httpd.conf ### filebeat 安装路径:/bigData/tools/filebeat/ 配置文件:/bigData/tools/filebeat/filebeat.yml ### logstash 安装路径:/bigData/tools/logstash/ 配置文件:/bigData/tools/logstash/config/logstash-filebeat-csv.conf
题目要求:
## 2、采集要求 1)修改apache httpd配置文件中的端口为8070,然后重启apache httpd。 2)根据apache httpd配置信息能找到access日志文件。并且通过火狐浏览器直接访问http://127.0.0.1:8070网址,产生新的日志数据。 3)在filebeat里配置采集的apache httpd的access日志文件路径 4)使用采集工具(filebeat)收集apache httpd的access日志数据 5)通过filebeat输出到logstash,在logstash里收集信息,通讯端口是5045 6)通过logstash使用 HTTPD_COMBINEDLOG 正则表达式规则拆分日志数据,从拆分后的日志数据中获取访问者IP 7)通过logstash输出到csv文件中(/home/output/httpd-outfile.csv)。 8)httpd-outfile.csv内容说明:包含访问者IP属性信息。 ## 3、提交的内容 1)apache httpd的配置文件 2)filebeat的配置文件 3)logstash的配置文件 4)csv结果文件
三、3分
#
主要配置项
Listen
8070
#
其他内容省略
四、7分
filebeat.inputs:
- type:
log
# to do
enabled:
true
# to do
paths:
-
/app/httpd/logs/error_log
filebeat.config.modules:
path:
${path.config}/modules.d/*.yml
reload.enabled:
false
setup.template.settings:
index.number_of_shards:
3
setup.kibana:
output.logstash:
# to do The Logstash hosts
hosts:
["localhost:5045"]
processors:
- add_host_metadata:
~
- add_cloud_metadata:
~
五、25分
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input
{
# to do
beats
{
port
=
> 5045
}
}
filter
{
# to do
grok
{
match
=
> { "message" => "%{HTTPD_COMMONLOG}" }
}
}
output
{
csv
{
path
=
> "/home/output/httpd-outfile.csv"
fields
=
> ["clientip"]
csv_options
=
> {"col_sep" => " "}
}
stdout{
codec
=
> rubydebug
}
}
六、15分
127.0.0.1
::1
题目:
题目说明:
# 二、数据采集任务场景二(编程开发) ## 1、数据场景: ### 采集网站 http://117.73.11.244:9090/ ### chrome浏览器启动 启动chrome:/opt/google/chrome/google-chrome --no-sandbox ### python开发工具启动 启动pycharm:/home/pycharm-community-2020.1.1/bin/pycharm.sh ### 工程目录说明 工程目录是:/root/PycharmProjects/webcrawler ### 编程文件 代码文件路径: /root/PycharmProjects/webcrawler/src/webcrawler.py
题目要求:
2、采集要求 1)使用python采集一个指定网站(http://117.73.9.229:9090/)的首页。 2)使用指定的user-agent值包装http request header。 3)采集目标:使用XPath获取顶部菜单栏的“新闻公告”的超链接地址(URL) 4)将结果存放到csv格式的文件里。结果文件路径:/home/output/crawler_result.csv 5)结果文件的要求:存放顶部菜单栏的“新闻公告”的超链接地址(URL) user-agent值: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36 ## 3、提交的内容 1)代码文件:webcrawler.py 2)采集结果:crawler_result.csv
一、35分
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import urllib, time, os, base64, json
import re, sys
from urllib.request import urlopen
from lxml import etree
from urllib import request
import requests
def getPage(base_url):
try:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36"}
req = request.Request(base_url, headers=headers)
page = urllib.request.urlopen(req) # 5
content = page.read().decode("utf-8", "ignore").encode("utf-8",'ignore')
selector = etree.HTML(content)
menu_items = selector.xpath("//*[@id=\"head_nav_list\"]/li[5]/a") # 5
for item in menu_items:
writefile("/home/output/crawler_result.csv", item.attrib["href"]) # 2
except Exception as e: # 3
print("Failed to read from %s." % base_url)
print(sys.exc_info())
return False
def writefile(filename, content):
try:
fp = open(filename, 'a') # 5
fp.write(content + "\n") # 5
fp.close() # 5
except:
return False
now = time.strftime('%Y-%m-%d %X', time.localtime(time.time()))
try:
# 5
url = 'http://117.73.9.229:9090/'
getPage(url)
except Exception as e:
info = '%s\nError: %s' % (now, e)
writefile('Error.log', info)
print (info)
time.sleep(1)
二、15分
暂无数据
http://www.inspuredu.com/sysNews/list.html
题目:
题目说明:
# 一、数据采集任务场景一(工具定制题) 使用 apache httpd、filebeat、logstash、csv完成数据采集演示。 ## 1、数据场景: ### apache httpd: 运行目录:/app/httpd/ 配置文件:/etc/httpd24/httpd.conf ### filebeat 安装路径:/bigData/tools/filebeat/ 配置文件:/bigData/tools/filebeat/filebeat.yml ### logstash 安装路径:/bigData/tools/logstash/ 配置文件:/bigData/tools/logstash/config/logstash-filebeat-csv.conf
题目要求:
## 2、采集要求 1)修改apache httpd配置文件中的端口为8070,然后重启apache httpd。 2)根据apache httpd配置信息能找到access日志文件。并且通过火狐浏览器直接访问http://127.0.0.1:8070网址,产生新的日志数据。 3)在filebeat里配置采集的apache httpd的access日志文件路径 4)使用采集工具(filebeat)收集apache httpd的access日志数据 5)通过filebeat输出到logstash,在logstash里收集信息,通讯端口是5045 6)通过logstash使用 HTTPD_COMBINEDLOG 正则表达式规则拆分日志数据,从拆分后的日志数据中获取访问者IP 7)通过logstash输出到csv文件中(/home/output/httpd-outfile.csv)。 8)httpd-outfile.csv内容说明:包含访问者IP属性信息。 ## 3、提交的内容 1)apache httpd的配置文件 2)filebeat的配置文件 3)logstash的配置文件 4)csv结果文件
三、3分
#
主要配置项
Listen
8070
#
其他内容省略
四、7分
filebeat.inputs:
- type:
log
# to do
enabled:
true
# to do
paths:
-
/app/httpd/logs/error_log
filebeat.config.modules:
path:
${path.config}/modules.d/*.yml
reload.enabled:
false
setup.template.settings:
index.number_of_shards:
3
setup.kibana:
output.logstash:
# to do The Logstash hosts
hosts:
["localhost:5045"]
processors:
- add_host_metadata:
~
- add_cloud_metadata:
~
五、25分
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input
{
# to do
beats
{
port
=
> 5045
}
}
filter
{
# to do
grok
{
match
=
> { "message" => "%{HTTPD_COMMONLOG}" }
}
}
output
{
csv
{
path
=
> "/home/output/httpd-outfile.csv"
fields
=
> ["clientip"]
csv_options
=
> {"col_sep" => " "}
}
stdout{
codec
=
> rubydebug
}
}
六、15分
127.0.0.1
::1
题目:
题目说明:
# 二、数据采集任务场景二(编程开发) ## 1、数据场景: ### 采集网站 http://117.73.11.244:9090/ ### chrome浏览器启动 启动chrome:/opt/google/chrome/google-chrome --no-sandbox ### python开发工具启动 启动pycharm:/home/pycharm-community-2020.1.1/bin/pycharm.sh ### 工程目录说明 工程目录是:/root/PycharmProjects/webcrawler ### 编程文件 代码文件路径: /root/PycharmProjects/webcrawler/src/webcrawler.py
题目要求:
2、采集要求 1)使用python采集一个指定网站(http://117.73.9.229:9090/)的首页。 2)使用指定的user-agent值包装http request header。 3)采集目标:使用XPath获取顶部菜单栏的“新闻公告”的超链接地址(URL) 4)将结果存放到csv格式的文件里。结果文件路径:/home/output/crawler_result.csv 5)结果文件的要求:存放顶部菜单栏的“新闻公告”的超链接地址(URL) user-agent值: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36 ## 3、提交的内容 1)代码文件:webcrawler.py 2)采集结果:crawler_result.csv
一、35分
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import urllib, time, os, base64, json
import re, sys
from urllib.request import urlopen
from lxml import etree
from urllib import request
import requests
def getPage(base_url):
try:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36"}
req = request.Request(base_url, headers=headers)
page = urllib.request.urlopen(req) # 5
content = page.read().decode("utf-8", "ignore").encode("utf-8",'ignore')
selector = etree.HTML(content)
menu_items = selector.xpath("//*[@id=\"head_nav_list\"]/li[5]/a") # 5
for item in menu_items:
writefile("/home/output/crawler_result.csv", item.attrib["href"]) # 2
except Exception as e: # 3
print("Failed to read from %s." % base_url)
print(sys.exc_info())
return False
def writefile(filename, content):
try:
fp = open(filename, 'a') # 5
fp.write(content + "\n") # 5
fp.close() # 5
except:
return False
now = time.strftime('%Y-%m-%d %X', time.localtime(time.time()))
try:
# 5
url = 'http://117.73.9.229:9090/'
getPage(url)
except Exception as e:
info = '%s\nError: %s' % (now, e)
writefile('Error.log', info)
print (info)
time.sleep(1)
二、15分
暂无数据
http://www.inspuredu.com/sysNews/list.html
题目:
题目说明:
# 一、数据采集任务场景一(工具定制题) 使用 apache httpd、filebeat、logstash、csv完成数据采集演示。 ## 1、数据场景: ### apache httpd: 运行目录:/app/httpd/ 配置文件:/etc/httpd24/httpd.conf ### filebeat 安装路径:/bigData/tools/filebeat/ 配置文件:/bigData/tools/filebeat/filebeat.yml ### logstash 安装路径:/bigData/tools/logstash/ 配置文件:/bigData/tools/logstash/config/logstash-filebeat-csv.conf
题目要求:
## 2、采集要求 1)修改apache httpd配置文件中的端口为8070,然后重启apache httpd。 2)根据apache httpd配置信息能找到access日志文件。并且通过火狐浏览器直接访问http://127.0.0.1:8070网址,产生新的日志数据。 3)在filebeat里配置采集的apache httpd的access日志文件路径 4)使用采集工具(filebeat)收集apache httpd的access日志数据 5)通过filebeat输出到logstash,在logstash里收集信息,通讯端口是5045 6)通过logstash使用 HTTPD_COMBINEDLOG 正则表达式规则拆分日志数据,从拆分后的日志数据中获取访问者IP 7)通过logstash输出到csv文件中(/home/output/httpd-outfile.csv)。 8)httpd-outfile.csv内容说明:包含访问者IP属性信息。 ## 3、提交的内容 1)apache httpd的配置文件 2)filebeat的配置文件 3)logstash的配置文件 4)csv结果文件
三、3分
#
主要配置项
Listen
8070
#
其他内容省略
四、7分
filebeat.inputs:
- type:
log
# to do
enabled:
true
# to do
paths:
-
/app/httpd/logs/error_log
filebeat.config.modules:
path:
${path.config}/modules.d/*.yml
reload.enabled:
false
setup.template.settings:
index.number_of_shards:
3
setup.kibana:
output.logstash:
# to do The Logstash hosts
hosts:
["localhost:5045"]
processors:
- add_host_metadata:
~
- add_cloud_metadata:
~
五、25分
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input
{
# to do
beats
{
port
=
> 5045
}
}
filter
{
# to do
grok
{
match
=
> { "message" => "%{HTTPD_COMMONLOG}" }
}
}
output
{
csv
{
path
=
> "/home/output/httpd-outfile.csv"
fields
=
> ["clientip"]
csv_options
=
> {"col_sep" => " "}
}
stdout{
codec
=
> rubydebug
}
}
六、15分
127.0.0.1
::1