Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zzsn_spider
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
王景浩
zzsn_spider
Commits
2d1b965e
提交
2d1b965e
authored
2月 28, 2024
作者:
薛凌堃
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
百度搜索标题采集修改
上级
7e627d93
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
47 行增加
和
25 行删除
+47
-25
baiduSpider.py
百度采集/baidu_comm/baiduSpider.py
+21
-6
baidutaskJob_loc.py
百度采集/baidu_comm/baidutaskJob_loc.py
+26
-19
没有找到文件。
百度采集/baidu_comm/baiduSpider.py
浏览文件 @
2d1b965e
#codi
ng=utf-8
#codi
ng=utf-8
...
...
@@ -362,20 +362,25 @@ class BaiduSpider(object):
try
:
detailurl
=
detailmsg
[
'detailUrl'
]
title
=
detailmsg
[
'title'
]
content
,
contentWithTag
=
self
.
extractorMsg
(
detailurl
,
title
)
content
,
contentWithTag
,
title_
=
self
.
extractorMsg
(
detailurl
,
title
)
contentWithTag
=
self
.
rmTagattr
(
contentWithTag
,
detailurl
)
except
Exception
as
e
:
content
=
''
contentWithTag
=
''
title_
=
''
currentdate
=
self
.
getNowDate
()
kword
=
self
.
searchkw
publishDate
=
detailmsg
[
'publishTag'
]
publishDate
=
publishDate
+
''
# publishtime=self.paserTime(publishtime)
# publishDate=publishtime.strftime("%Y-%m-%d %H:%M:%S")
if
'...'
in
detailmsg
[
'title'
]:
title
=
title_
else
:
title
=
detailmsg
[
'title'
]
detailmsg
=
{
'title'
:
detailmsg
[
'title'
],
# 'title':detailmsg['title'],
'title'
:
title
,
'source'
:
detailmsg
[
'sourceTag'
],
'detailurl'
:
detailurl
,
'content'
:
content
,
...
...
@@ -416,6 +421,8 @@ class BaiduSpider(object):
raw_html
=
self
.
webDriver
(
url
)
sm
=
SmartExtractor
(
lang
)
article
=
sm
.
extract_by_html
(
raw_html
)
#todo:标题获取全部标题
title
=
article
.
title
content
=
article
.
cleaned_text
contentWithTag
=
article
.
text
except
Exception
as
e
:
...
...
@@ -423,12 +430,14 @@ class BaiduSpider(object):
raw_html
=
self
.
webDriver
(
url
)
sm
=
SmartExtractor
(
lang
)
article
=
sm
.
extract_by_html
(
raw_html
)
# todo:标题获取全部标题
title
=
article
.
title
content
=
article
.
cleaned_text
contentWithTag
=
article
.
text
except
Exception
as
e
:
print
(
'抽取失败!!'
)
return
content
,
contentWithTag
return
content
,
contentWithTag
,
title
def
detect_language
(
self
,
html
):
soup
=
BeautifulSoup
(
html
,
"html.parser"
)
...
...
@@ -464,6 +473,7 @@ class BaiduSpider(object):
try
:
bdetail
=
self
.
getDetailmsg
(
detailmsg
)
processitem
=
self
.
getProcessitem
(
bdetail
)
if
processitem
:
try
:
self
.
sendkafka
(
processitem
)
self
.
r
.
sadd
(
'pybaidu_baidu_'
+
self
.
wordsCode
,
processitem
[
'sourceAddress'
])
...
...
@@ -480,6 +490,8 @@ class BaiduSpider(object):
# 关闭当前新窗口
# self.driver.close()
time
.
sleep
(
1
)
else
:
self
.
logger
.
info
(
f
"抽取内容或标题为空!{bdetail['kword']}===={detailUrl}"
)
except
Exception
as
e
:
time
.
sleep
(
3
)
self
.
logger
.
info
(
"详情页解析异常!"
+
detailUrl
)
...
...
@@ -490,7 +502,8 @@ class BaiduSpider(object):
def
getProcessitem
(
self
,
bdetail
):
nowDate
=
self
.
getNowDate
()
content
=
bdetail
[
'content'
]
if
content
!=
''
:
title
=
bdetail
[
'title'
]
if
content
!=
''
or
title
!=
''
:
processitem
=
{
"sid"
:
self
.
sid
,
"source"
:
"3"
,
...
...
@@ -504,6 +517,8 @@ class BaiduSpider(object):
}
return
processitem
else
:
return
None
def
sendkafka
(
self
,
processitem
):
...
...
百度采集/baidu_comm/baidutaskJob_loc.py
浏览文件 @
2d1b965e
# -*-
coding: utf-8 -*-
# -*-
coding: utf-8 -*-
...
...
@@ -5,6 +5,7 @@
2、连接kafka做信息的获取,与存储
"""
import
random
import
time
import
redis
...
...
@@ -163,10 +164,10 @@ class BaiduTaskJob(object):
return
kwList
def
runSpider
(
self
,
kwmsg
,
com_name
):
searchkw
=
com_name
+
kwmsg
[
'kw'
]
wordsCode
=
kwmsg
[
'wordsCode'
]
sid
=
kwmsg
[
'sid'
]
def
runSpider
(
self
,
kwmsg
):
searchkw
=
kwmsg
[
'kw'
]
wordsCode
=
kwmsg
[
'wordsCode'
]
sid
=
kwmsg
[
'sid'
]
baiduSpider
=
BaiduSpider
(
searchkw
,
wordsCode
,
sid
)
try
:
...
...
@@ -217,25 +218,31 @@ if __name__ == '__main__':
# ss='(中国机床工具工业协会|中国内燃机工业协会|中国机电工业价格协会|中国机械电子兵器船舶工业档案学会|中国仪器仪表行业协会|中国工程机械工业协会|中国文化办公设备制造行业协会|中国机械工业金属切削刀具技术协会|中国机械工业教育协会|中国汽车工业协会|中国机械通用零部件工业协会|中国环保机械行业协会|中国模具工业协会|中国机械工业勘察设计协会|中国机械制造工艺协会|中国机械工业审计学会|中国轴承工业协会|中国机电一体化技术应用协会|中国机械工程学会|中国液压气动密封件工业协会|中国铸造协会|中国通用机械工业协会|中国锻压协会|中国制冷空调工业协会|中国热处理行业协会|中国电工技术学会|中国仪器仪表学会|中国石油和石油化工设备工业协会|中国表面工程协会|中国食品和包装机械工业协会|中国焊接协会|中国汽车工程学会|中国塑料机械工业协会|中国机械工业企业管理协会|中国印刷及设备器材工业协会|中国机械工业质量管理协会|中国电器工业协会|中国机械工业安全卫生协会|中国重型机械工业协会|中国机械工业标准化技术协会|中国机械工业职工思想政治工作研究会|中国农业机械工业协会|中国机电装备维修与改造技术协会 |机械工业信息研究院|机械工业教育发展中心|机械工业经济管理研究院|机械工业信息中心|机械工业人才开发服务中心|机械工业北京电工技术经济研究所|机械工业技术发展基金会|机械工业哈尔滨焊接技术培训中心|机械工业仪器仪表综合技术经济研究所)+(私收会费|私吞|肆意牟利|损失浪费|索贿|贪财|贪官污吏|贪污|违背组织原则|违法|违纪|为官不廉|为政擅权|窝案|舞弊|泄露国家机密|信鬼神|性关系|虚假信息|虚假招标|隐瞒不报|隐瞒真相|营私|鬻爵|主动投案|资产流失|钻空子|钻漏洞|被调查|被双开|不担当|不老实|不良影响|不正当|不作为|超标准建设|超标准装修|吃空饷|吃拿卡要|渎职|对党不忠诚|非法批地|腐败|腐虫|腐化堕落|公车私用|公费开销|公款吃喝|公款出境|公款旅游|勾结|官迷心窍|好色|回扣|贿赂|挤占挪用|纪律审查|监察调查|监守自盗|践踏法律|接受审查调查|截留克扣|开除党籍|开除公职|抗议|利欲熏心|敛财|乱摊派|乱作为|落马|落网|买官|买卖审批权限|卖官|谋取暴利|谋取私利|目无法纪|幕后交易|弄虚作假|挪用公款|骗取|钱色交易|潜规则|侵害权益|侵吞公款|侵占挪用|圈子文化|权利扭曲|权钱交易|权色交易|山头主义|涉案|生活糜烂|生活奢靡|失察|失管|收送|受贿|双规|双开|私分|私人会所|私设小金库|负面|下降|违规|不利|亏损|上诉|不法|不良名单|停职|公开谴责|公诉|内幕交易|刑事拘留|刑事责任|刑拘|判决|判刑|判赔|司法处置|合同纠纷|处分|处罚|强制执行|仲裁|伪造|伪造公章|投案|投诉|拘留|接受调查|控诉|查封|涉嫌|涉诉监察调查|纠纷|经营异常名录|缉捕|罚单|罚款|罚金|罪犯|自首|获刑|行贿|警示函|贪腐|违约金|追究刑责|造假|逮捕|非法|非法集资判决书|申诉|纠纷|通报|开除|留党察看|追债|逃债|资产负债率|情色交易|搞权钱|曝光|黑料|重罚|虚假报告|侵犯)'
while
True
:
try
:
com_name
=
baiduTaskJob
.
get_comname
()
if
com_name
:
pass
else
:
break
codeList
=
[
'KW-20240206-0001'
,
'KW-20240206-0002'
,
'KW-20240206-0003'
'KW-20220809-0004'
,
'KW-20220524-0004'
,
'KW-20220809-0005'
,
'KW-20220824-0001'
,
'KW-20220809-0002'
,
'KW-20220809-0003'
,
'KW-20220826-0001'
,
'KW-20220602-0003'
,
'KW-20220602-0002'
,
'KW-20220113-0007'
,
'KW-20220113-0006'
,
'KW-20220108-0004'
,
'KW-20220113-0004'
]
for
codeid
in
codeList
:
for
codeid
in
codeList
[::
-
1
]:
try
:
# keymsg=baiduTaskJob.getkafka()
keymsg
=
baiduTaskJob
.
getkeyFromredis
(
codeid
)
kwList
=
baiduTaskJob
.
paserKeyMsg
(
keymsg
)
keymsg
=
baiduTaskJob
.
getkeyFromredis
(
codeid
)
kwList
=
baiduTaskJob
.
paserKeyMsg
(
keymsg
)
# 从列表中随机选择5个数据
if
len
(
kwList
)
<
1
:
if
len
(
kwList
)
<
1
:
continue
#
kwList = random.sample(kwList, 4)
kwList
=
random
.
sample
(
kwList
,
4
)
logger
.
info
(
f
"需要搜索的关键词:{kwList}"
)
except
Exception
as
e
:
logger
.
info
(
"从kafka拿取信息失败!"
)
...
...
@@ -245,7 +252,7 @@ if __name__ == '__main__':
# 创建一个线程池,指定线程数量为4
with
concurrent
.
futures
.
ThreadPoolExecutor
(
max_workers
=
1
)
as
executor
:
# 提交任务给线程池,每个任务处理一个数据
results
=
[
executor
.
submit
(
baiduTaskJob
.
runSpider
,
data
,
com_name
)
for
data
in
kwList
]
results
=
[
executor
.
submit
(
baiduTaskJob
.
runSpider
,
data
)
for
data
in
kwList
]
# 获取任务的执行结果
for
future
in
concurrent
.
futures
.
as_completed
(
results
):
try
:
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论