下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
#!/usr/bin/python3import osimport os.pathimport urllib.requestimport chardetimport timeimport refrom multiprocessing.dummy import Pool as ThreadPooldef url_content_read(url): res = urllib.request.urlopen(url).read() return res def url_socket_List_pharse(socket_raw_info_data): p = re.compile(r'<td>(\d+\.\d+\.\d+\.\d+)</td><td>(\d+)</td>') socket_info_List = p.findall(socket_raw_info_data) socket_pharsed_info_List = [] for s_info in socket_info_List: socket_pharsed_info_List.append("%s:%s"%(s_info[0],s_info[1])) return socket_pharsed_info_Listif __name__ == "__main__": urls = [] for i in range(1,42): urls.append("http://www.proxy.com.ru/List_%d.HTML"%(i)) start_time = time.time() _pool = ThreadPool(4) results = _pool.map(url_content_read,urls) _pool.close() _pool.join() print("time spent: %f"%(time.time() - start_time)) p = re.compile(r'http://[\w|\d|-|\.]+[:\d+]*[/|\w|\d|\.|%|@|&|\*|\+|#|\?|\=|\-]+') #对获取的结果网页进行字符串的编码解码 socket_info_raw_data_List = [] for res in results: det_res = chardet.detect(res) #print(det_res) if det_res['enCoding'] == 'utf-8': socket_info_raw_data_List.append(res.decode('utf-8','ignore')) elif det_res['enCoding'] == 'GB2312': socket_info_raw_data_List.append(res.decode('GB2312','ignore')) else: socket_info_raw_data_List.append(res.decode('gbk','ignore')) #对结果进行进一步的解析 start_time = time.time() _pool = ThreadPool(40) results = _pool.map(url_socket_List_pharse,socket_info_raw_data_List) _pool.close() _pool.join() print("time spent: %f"%(time.time() - start_time)) #最后对结果进行输出 fp = open(r'/home/mobilefzb/socket_List.txt','w') for res in results: for si_res in res: fp.write("%s\n"%(si_res)) fp.close()
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的新年新气象!爬取一个代理服务器列表全部内容,希望文章能够帮你解决新年新气象!爬取一个代理服务器列表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)