新手求助

2018-09-10 09:05:36 +08:00
 happykjoy
一段代码,先获取一个网址的代码,再进行打印格式化,然后想通过进程池提高速度。用 pool=Pool(10),pool.map()这个代码实现,怎么实现啦。请大神帮帮忙。代码如下:
#!/usr/bin/python
#_*_ coding:utf8 _*_

import requests
from requests.excepti** import RequestException
import re

def get_one_page(url):
try:
resp**e = requests.get(url)
if resp**e.status_code == 200:
#print(resp**e.text)
#print(resp**e.encoding)
#print(resp**e.apparent_encoding)
#r = resp**e.text
#print(requests.utils.get_encodings_from_content(r)[0])
#a = r.encode('utf-8').decode(requests.utils.get_encodings_from_content(r)[0])
#print(a)
#print('------------------------------------')
#b = r.encode('utf-8').decode(resp**e.apparent_encoding)
#print(b)
return resp**e.text
return None
except RequestException:
return None

def parse_one_page(html):
pattern = re.compile('<li.*?cover.*?href="(.*?)".*?</li>',re.S)
result = re.findall(pattern,html)
print(result)

def main():
url = 'https://book.douban.com/'
html=get_one_page(url)
parse_one_page(html)

if __name__ == '__main__':
main()

这个后面的多进程怎么写,大神们帮帮忙。
1660 次点击
所在节点    Python
4 条回复
happykjoy
2018-09-10 09:22:20 +08:00
各位帮帮忙,我是小白
sunnyadamm
2018-09-10 10:35:22 +08:00
。。。你这代码贴的,估计大家连读都不想读。。。
happykjoy
2018-09-10 11:10:24 +08:00
#!/usr/bin/python
#_*_ coding:utf8 _*_

import requests
from requests.exceptions import RequestException
import re
from multiprocessing import Pool

def get_one_page(url):
try:
response = requests.get(url)
if response.status_code == 200:
#print(response.text)
#print(response.encoding)
#print(response.apparent_encoding)
#r = response.text
#print(requests.utils.get_encodings_from_content(r)[0])
#a = r.encode('utf-8').decode(requests.utils.get_encodings_from_content(r)[0])
#print(a)
#print('------------------------------------')
#b = r.encode('utf-8').decode(response.apparent_encoding)
#print(b)
return response.text
return None
except RequestException:
return None

def parse_one_page(html):
pattern = re.compile('<li.*?cover.*?href="(.*?)" title="(.*?)">.*?img src="(.*?)"'
'.*?author">(.*?)</div>.*?year">(.*?)</span>.*?publisher">(.*?)'
'</span>.*?abstract">(.*?)</p>.*?</li>',re.S)
result = re.findall(pattern,html)
for item in result:
yield {
'地址': item[0],
'书名': item[1],
'封面': item[2],
'作者': item[3].strip()[0:],
'出版时间': item[4].strip()[0:],
'出版社': item[5].strip()[0:],
'详细': item[6].strip()[0:]
}

def main():
url = 'https://book.douban.com/'
html=get_one_page(url)
for item in parse_one_page(html):
print(item)


if __name__=='__main__':
pool = Pool()
pool.map(main, [i * 10 for i in range(10)])
pool.close()
pool.join()
happykjoy
2018-09-10 11:11:56 +08:00
@sunnyadamm 抱歉,新手刚来,第一次贴代码,贴成纯文本格式了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487743

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX