Python 嗯 从functools导入部分 executor.map(部分(获取内容、s、链接)、关键字)

Python 嗯 从functools导入部分 executor.map(部分(获取内容、s、链接)、关键字),python,python-3.x,web-scraping,concurrent.futures,Python,Python 3.x,Web Scraping,Concurrent.futures,更新2 这里是一个修改版本,其中fetch\u content返回它找到的报纸名称列表,而不是打印出来(主线程可以打印出列表),其他打印语句被注释掉,以减少额外的“噪音”,从而将结果包括在这里。我已更改了参数的顺序,以防您想改用map: 导入请求 进口期货 从bs4导入BeautifulSoup 从urllib.parse导入urljoin 从functools导入部分 年份列表开始日期=['2013.01.01','2014.01.02'] 年份列表截至=['2014.01.01','2015

更新2

这里是一个修改版本,其中
fetch\u content
返回它找到的报纸名称列表,而不是打印出来(主线程可以打印出列表),其他打印语句被注释掉,以减少额外的“噪音”,从而将结果包括在这里。我已更改了参数的顺序,以防您想改用
map

导入请求
进口期货
从bs4导入BeautifulSoup
从urllib.parse导入urljoin
从functools导入部分
年份列表开始日期=['2013.01.01','2014.01.02']
年份列表截至=['2014.01.01','2015.01.01']
基地组织https://search.naver.com/search.naver'
链接https://search.naver.com/search.naver'
def fetch_内容、链接、关键字:
参数={
'何处':'新闻',
“sm”:“tab_pge”,
“查询”:“,
“排序”:“1”,
“照片”:“0”,
“字段”:“0”,
“pd”:“,
“ds”:“,
“德”:“,
“集群排名”:“,
“mynews”:“0”,
“办公室类型”:“0”,
“办公室分区代码”:“0”,
“新闻办公室检查”:“,
“nso”:“,
“开始”:“,
}
报纸名称=[]
对于zip中的开始日期、截止日期(年份列表、开始日期、截止日期):
我的参数=参数
ds=开始日期。替换(“.”,“”)
de=日期_至替换(“.”,“”)
my_参数['query']=关键字
我的参数['ds']=ds
我的参数['de']=de
my_params['nso']=f'so:r,p:from{ds}to{de},a:all'
我的参数['start']=1
尽管如此:
res=s.get(link,params=my_params)
#打印(res.status_代码,flush=True)
#打印(res.url,flush=True)
汤=美汤(res.text,“lxml”)
如果不是汤,选择一个(“ul.list\u news.news\u area.info\u group>a.press”):休息
对于汤中的项目。选择(“ul.list\U新闻。新闻\U区域”):
报纸名称=项目。选择一个(“.info\u group>a.press”)。获取文本(strip=True)。lstrip(=”)
报纸名称。附加(报纸名称)
如果是汤,请选择一个(“a.btn\u next[aria disabled='true']):中断
下一页=汤。选择下一页(“a.btn\u下一页”)。获取(“href”)
link=urljoin(基本,下一页)
我的参数=无
返回报社名称
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
将requests.Session()作为s:
s、 标题['User-Agent']=“Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.36(KHTML,如Gecko)Chrome/88.0.4324.150 Safari/537.36”
关键词=['CMG제약','分贝하이텍','锿큐브','电动汽车첨단소재']
以concurrent.futures.ThreadPoolExecutor(max_workers=4)作为执行器:
future_to_url={executor.submit(fetch_content,s,link,keyword):关键字中关键字对应的关键字}
对于并发的future.futures.as_完成(future_到_url):
打印('keyword=',future\u to\u url[future],'paper names=',future.result())
"""
从functools导入部分
结果=executor.map(部分(获取内容、s、链接)、关键字)
对于idx,结果为enumerate(结果):
打印(“关键字=”,关键字[idx],“报纸名称=”,结果)
"""
印刷品:

keyword =  DB하이텍 newspaper names = []
keyword =  ES큐브 newspaper names = ['국제신문', '스포츠월드', '스포츠조선', '이뉴스투데이', '중앙SUNDAY', '중앙SUNDAY', '매일경제', '디지털데일리', '전자신문', '머니투데이', '한경비즈니스', '한경비즈니스', '동아일보', '뉴시스', '데일리안', '매일경제', '한경비즈니스', '한경비즈니스', '동아일보', '뉴시스', '데일리안', '매일경제']
keyword =  EV첨단소재 newspaper names = ['머니S', '아주경제', 'EBN', '오토타임즈', '머니S', '서울경제', '뉴시스', '파이낸셜뉴스', '연합뉴스', '연합뉴스', 'EBN', '뉴스핌', '포브스코리아', 'EBN', '시민일보', '매일경제', '세계일보', 'TV리포트', '전기신문', '뉴시스', '기호일보', '스포츠월드', 'OSEN', '뉴시스', '경북매일신문', '파이낸셜뉴스', '이투데이', '뉴시스', '헤럴드경제', '헤럴드POP', '조선비즈', 'EBN', '아주경제', '뉴스1', '아시아경제', '헤럴드경제', '전자신문', '뉴시스', '뉴시스', '전기신문', '전자신문', '오토타임즈', '연합뉴스', '에너지경제', '서울경제', 'EBN', '서울경제', '파이낸셜뉴스', '전자신문', '오토타임즈', '연합뉴스', '에너지경제', '서울경제', 'EBN', '서울경제', '파이낸셜뉴스']
keyword =  CMG제약 newspaper names = ['국민일보', '국민일보', '메디컬투데이', '한국경제', '서울경제', '매일경제', '시민일보', '아시아경제', '데일리안', '조선비즈', '메디파나뉴스', '매일경제', 'TBS', '매일경제', 'MBN', '아시아경제', 'KBS', '뉴스토마토', '연합뉴스', '뉴스1', '국민일보', '뉴시스', '국민일보', '뉴스토마토', '아시아투데이', '청년의사', '메디파나뉴스', '이데일리', '메디컬투데이', '한국경제', '아시아경제', '이투데이', '머니투데이', '뉴스토마토', '연합뉴스', '약업신문', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '이데일리', '뉴스토마토', '머니투데이', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '머니투데이', '머니투데이', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '이투데이', '한국경제', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '헤럴드POP', '뉴스토마토', '한국경제', '서울경제', '매일경제', '뉴스토마토', '서울파이낸스', '뉴스토마토', '이데일리', '헤럴드POP', '뉴스토마토', '뉴스토마토', '뉴스토마토', '머니투데이', '뉴스토마토', '한국경제', '이투데이', '파이낸셜뉴스', '매일경제', '뉴시스', '뉴스토마토', '뉴스토마토', '이투데이', 'EBN', 'NSP통신', '이투데이', '아주경제', '한국경제', '뉴스핌', '뉴스토마토', '이데일리', '헤럴드POP', '머니투데이', '머니투데이', '아시아경제', 'NSP통신', '서울파이낸스', '아시아경제', '뉴스토마토', '이데일리', '이투데이', '뉴스토마토', '이데일리', '뉴스핌', '머니투데이', '헤럴드POP', '이데일리', '이투데이', '세계일보', '뉴스토마토', '서울파이낸스', '머니투데이', '이데일리', '이투데이', '컨슈머타임스', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '약업신문', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '약업신문', '약업신문', '뉴시스', '연합뉴스', '뉴스토마토', '약업신문', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '약업신문', '약업신문', '한국경제', '서울경제', '이데일리', '이투데이', '한국경제', '매일경제', '이데일리', '서울경제', '매일경제', '이데일리', '서울경제', '이투데이', '파이낸셜뉴스', '조선비즈', '뉴스핌', '한국경제', '머니투데이', '파이낸셜뉴스', '매일경제', '파이낸셜뉴스', '파이낸셜뉴스', '연합뉴스', '데일리팜', '데일리팜', '조선비즈', '이투데이', '한국경제', 'MTN', '서울경제', '뉴스토마토', '메디파나뉴스', '조선비즈', '파이낸셜뉴스', '한국경제', '아시아경제', '이투데이', '연합뉴스', '한국경제', '뉴스핌', '이데일리', '머니투데이', '매일경제', '약업신문', '뉴스토마토', '메디파나뉴스', '파이낸셜뉴스', '파이낸셜뉴스', '한국경제', '이투데이', '머니투데이', '연합뉴스', '이투데이', '매일경제', '매일경제', '뉴스토마토', '서울경제', '이투데이', '아주경제', '이데일리', '한국경제', '헤럴드POP', '매일경제', '뉴스핌', '머니투데이', '머니투데이', '서울파이낸스', '뉴스토마토', '헤럴드POP', '뉴스토마토', '한국경제', '한국경제', '서울경제', '한국경제', '이데일리', '헤럴드POP', '조선비즈', '아주경제', '서울경제', '매일경제', '뉴시스', '뉴스토마토', '뉴스핌', '연합뉴스', '파이낸셜뉴스', '매일경제', '이투데이', '아시아경제', '매일경제', '이투데이', '아시아경제']
注意


如果您取消对其他打印语句的注释,并在完成时打印结果(即,使用方法
将结果打印为\u completed
),则报纸列表的打印输出将散布在其他打印行中,可能很难看到。在这种情况下,您可能希望使用我包含但已注释掉的
map
方法,以便仅在返回所有结果并完成所有调试打印语句后才打印报纸列表n已发布。

乍一看,您似乎需要增加
开始
值,而不是查找分页url。您是对的。我首先使用了该方法,但最终出现了错误的循环。但是,如果我不使用多处理,我当前的尝试将完美无瑕,这就是我创建此帖子的原因寻找解决方案。谢谢@baduker。顺便说一句,while循环很有效。乍一看,您需要增加
start
值,而不是查找分页url。您是对的。我首先使用了该方法,但最终使用了错误的循环。但是,如果我不使用r多处理,这就是我创建这篇文章来寻求解决方案的原因。谢谢@baduker。顺便说一句,while循环很有效。谢谢你的回答@Booboo。现在,脚本以CMG开头제약 并且以相同的关键字结束。列表中的其余关键字仍然未使用。我在while循环结束时使用了
params=None
,因为当脚本获取下一个页面链接时,该链接已经附加了params,因此多余的参数是不必要的,这就是为什么我定义了
params=None
。但是,如果我运行y我们的脚本是这样的,链接就像你可以在每个链接中看到两个相同的参数一样。请查看答案的更新注释和更新的代码。我有一个新的更新2,它更容易看到输出。感谢你的回答@Booboo。现在,脚本以CMG开始제약 并且以相同的关键字结束。列表中的其余关键字仍然未使用。我在while循环结束时使用了
params=None
,因为当脚本获取下一个页面链接时,该链接已经附加了params,因此多余的参数是不必要的,这就是为什么我定义了
params=None
。但是,如果我运行y我们的脚本是这样的,链接就像你可以在每个链接中看到两个相同的参数一样。请查看答案的更新注释和更新的代码。我有一个新的更新2,它更容易看到输出
keyword =  DB하이텍 newspaper names = []
keyword =  ES큐브 newspaper names = ['국제신문', '스포츠월드', '스포츠조선', '이뉴스투데이', '중앙SUNDAY', '중앙SUNDAY', '매일경제', '디지털데일리', '전자신문', '머니투데이', '한경비즈니스', '한경비즈니스', '동아일보', '뉴시스', '데일리안', '매일경제', '한경비즈니스', '한경비즈니스', '동아일보', '뉴시스', '데일리안', '매일경제']
keyword =  EV첨단소재 newspaper names = ['머니S', '아주경제', 'EBN', '오토타임즈', '머니S', '서울경제', '뉴시스', '파이낸셜뉴스', '연합뉴스', '연합뉴스', 'EBN', '뉴스핌', '포브스코리아', 'EBN', '시민일보', '매일경제', '세계일보', 'TV리포트', '전기신문', '뉴시스', '기호일보', '스포츠월드', 'OSEN', '뉴시스', '경북매일신문', '파이낸셜뉴스', '이투데이', '뉴시스', '헤럴드경제', '헤럴드POP', '조선비즈', 'EBN', '아주경제', '뉴스1', '아시아경제', '헤럴드경제', '전자신문', '뉴시스', '뉴시스', '전기신문', '전자신문', '오토타임즈', '연합뉴스', '에너지경제', '서울경제', 'EBN', '서울경제', '파이낸셜뉴스', '전자신문', '오토타임즈', '연합뉴스', '에너지경제', '서울경제', 'EBN', '서울경제', '파이낸셜뉴스']
keyword =  CMG제약 newspaper names = ['국민일보', '국민일보', '메디컬투데이', '한국경제', '서울경제', '매일경제', '시민일보', '아시아경제', '데일리안', '조선비즈', '메디파나뉴스', '매일경제', 'TBS', '매일경제', 'MBN', '아시아경제', 'KBS', '뉴스토마토', '연합뉴스', '뉴스1', '국민일보', '뉴시스', '국민일보', '뉴스토마토', '아시아투데이', '청년의사', '메디파나뉴스', '이데일리', '메디컬투데이', '한국경제', '아시아경제', '이투데이', '머니투데이', '뉴스토마토', '연합뉴스', '약업신문', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '이데일리', '뉴스토마토', '머니투데이', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '머니투데이', '머니투데이', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '이투데이', '한국경제', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '헤럴드POP', '뉴스토마토', '한국경제', '서울경제', '매일경제', '뉴스토마토', '서울파이낸스', '뉴스토마토', '이데일리', '헤럴드POP', '뉴스토마토', '뉴스토마토', '뉴스토마토', '머니투데이', '뉴스토마토', '한국경제', '이투데이', '파이낸셜뉴스', '매일경제', '뉴시스', '뉴스토마토', '뉴스토마토', '이투데이', 'EBN', 'NSP통신', '이투데이', '아주경제', '한국경제', '뉴스핌', '뉴스토마토', '이데일리', '헤럴드POP', '머니투데이', '머니투데이', '아시아경제', 'NSP통신', '서울파이낸스', '아시아경제', '뉴스토마토', '이데일리', '이투데이', '뉴스토마토', '이데일리', '뉴스핌', '머니투데이', '헤럴드POP', '이데일리', '이투데이', '세계일보', '뉴스토마토', '서울파이낸스', '머니투데이', '이데일리', '이투데이', '컨슈머타임스', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '약업신문', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '약업신문', '약업신문', '뉴시스', '연합뉴스', '뉴스토마토', '약업신문', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '뉴스토마토', '약업신문', '약업신문', '한국경제', '서울경제', '이데일리', '이투데이', '한국경제', '매일경제', '이데일리', '서울경제', '매일경제', '이데일리', '서울경제', '이투데이', '파이낸셜뉴스', '조선비즈', '뉴스핌', '한국경제', '머니투데이', '파이낸셜뉴스', '매일경제', '파이낸셜뉴스', '파이낸셜뉴스', '연합뉴스', '데일리팜', '데일리팜', '조선비즈', '이투데이', '한국경제', 'MTN', '서울경제', '뉴스토마토', '메디파나뉴스', '조선비즈', '파이낸셜뉴스', '한국경제', '아시아경제', '이투데이', '연합뉴스', '한국경제', '뉴스핌', '이데일리', '머니투데이', '매일경제', '약업신문', '뉴스토마토', '메디파나뉴스', '파이낸셜뉴스', '파이낸셜뉴스', '한국경제', '이투데이', '머니투데이', '연합뉴스', '이투데이', '매일경제', '매일경제', '뉴스토마토', '서울경제', '이투데이', '아주경제', '이데일리', '한국경제', '헤럴드POP', '매일경제', '뉴스핌', '머니투데이', '머니투데이', '서울파이낸스', '뉴스토마토', '헤럴드POP', '뉴스토마토', '한국경제', '한국경제', '서울경제', '한국경제', '이데일리', '헤럴드POP', '조선비즈', '아주경제', '서울경제', '매일경제', '뉴시스', '뉴스토마토', '뉴스핌', '연합뉴스', '파이낸셜뉴스', '매일경제', '이투데이', '아시아경제', '매일경제', '이투데이', '아시아경제']