from bs4 import BeautifulSoup
import os
filepath = 'D:\\pymine\\clean\\spider_map\\baidu_map_html_firstpage_pc_test\\'
pathDir = os.listdir(filepath)
name_poi_dic = {}
need_todo_request = ['搜索结果']
no_list = ['全国范围内未找到相关地点', '共找到0个搜索结果']
bd_no_this_name_str = '百度对此条无结果'
#未找到结果,为您提供"大兴店"的搜索结果
for allDir in pathDir:
child = os.path.join('%s%s' % (filepath, allDir))
if child.find('&')>-1 or child.find('170')>-1:
os.remove(child)
requested_file = child.split('baidu_map_html_firstpage_pc')[1].split('&')[0].split('.html')[0].replace('\\', '')
name_poi_dic[requested_file] = {}
name_poi_dic[requested_file]['poi_list'] = []
mybytes = open(child, 'r', encoding='utf-8')
soup = BeautifulSoup(mybytes, "lxml")
soup_text = soup.text if soup_text.find('全国范围内未找到') > -1:
name_poi_dic[requested_file]['poi_list'].append(bd_no_this_name_str)
elif soup_text.find('商户免费标注') > -1:
name_l, addr_l = soup.find_all(class_='n-blue'), soup.find_all(class_='n-grey')
len_, len_addr = len(name_l), len(addr_l)
for index_ in range(0, len_, 1):
dic_ = {}
if index_ < len_addr:
dic_['name'], dic_['addr'] = name_l[index_].text, addr_l[index_].text
else:
dic_['name'], dic_['addr'] = name_l[index_].text, '百度此处无地址'
name_poi_dic[requested_file]['poi_list'].append(dic_)
elif soup_text.find('m.hao123.com') > -1:
name_l, addr_l = soup.find_all(class_='text-ellipsis -ft-primary -ft-large'), soup.find_all(
class_='dis-inf text-ellipsis -col-auto')
# len_ =min(len(name_l),len(addr_l))
len_, len_addr = len(name_l), len(addr_l)
for index_ in range(0, len_, 1):
dic_ = {}
if index_ < len_addr:
dic_['name'], dic_['addr'] = name_l[index_].text.split('.')[1], addr_l[index_].text
else:
dic_['name'], dic_['addr'] = name_l[index_].text.split('.')[1], '百度此处无地址'
name_poi_dic[requested_file]['poi_list'].append(dic_)
elif soup_text.find('地址:') > -1:
dic_ = {}
dic_['name'], dic_['addr'] = soup.find_all('td').text.split('地址:')
name_poi_dic[requested_file]['poi_list'].append(dic_)
else:
mybytes.close()
os.remove(child)
print('TODO', requested_file)

  

effect request的更多相关文章

  1. laravel数据库查询是use方法的使用

    ){                return $query->where('effectivetime','<',date('Y-m-d'));             }else{ ...

  2. casbin-权限管理

    概要 权限管理几乎是每个系统或者服务都会直接或者间接涉及的部分. 权限管理保障了资源(大部分时候就是数据)的安全, 权限管理一般都是和业务强关联, 每当有新的业务或者业务变化时, 不能将精力完全放在业 ...

  3. Casbin权限模型

    权限框架casbin1.概述Casbin是一个强大的.高效的开源访问控制框架,其权限管理机制支持多种访问控制模型. Casbin支持以下编程语言: Casbin可以做到:支持自定义请求的格式,默认的请 ...

  4. Casbin 使用记录

    Casbin 是什么? 官方解释:Casbin是一个强大的.高效的开源访问控制框架,其权限管理机制支持多种访问控制模型. Casbin只负责访问控制.身份认证 authentication(即验证用户 ...

  5. 从别人的代码中学习golang系列--03

    这篇博客还是整理从https://github.com/LyricTian/gin-admin 这个项目中学习的golang相关知识. 作者在项目中使用了 github.com/casbin/casb ...

  6. gin框架中集成casbin-权限管理

    概念 权限管理几乎是每个系统或者服务都会直接或者间接涉及的部分. 权限管理保障了资源(大部分时候就是数据)的安全, 权限管理一般都是和业务强关联, 每当有新的业务或者业务变化时, 不能将精力完全放在业 ...

  7. Casbin + Gin + Gorm 学习探索

    Casbin 是一个强大的,开源的访问控制框架,权限管理机制支持多种访问控制模型: 并且支持多种编程语言: 文档地址:https://casbin.org/docs/zh-CN/overview Gi ...

  8. XACML-PolicySet与request结构简介

    本文由@呆代待殆原创,转载请注明出处. 一.PolicySet的结构 PolicySet 的基本嵌套结构如上图所示,下面让我们一个一个来说明. PolicySet:XACML策略架构的顶层元素,由Po ...

  9. How to use Request js (Node js Module) pools

    Can someone explain how to use the request.js pool hash? The github notes say this about pools: pool ...

随机推荐

  1. 一个例子理解Predicate、Consumer和Stream

    一个需求: 把年龄大于20的学生的信息打印出来. 面向对象编程 public class Student { private String name; private int age; private ...

  2. const 使用方法具体解释

    const使用方法具体解释 面向对象是C++的重要特性.  可是c++在c的基础上新添加的几点优化也是非常耀眼的 就const直接能够代替c中的#define 下面几点非常重要,学不好后果也也非常严重 ...

  3. Oracle基础(二) 创建数据库实例

    Oracle中数据库也称为数据库实例,在Oracle在安装过程中可以选择创建数据库,也可以再安装之后再进行创建. 一般创建数据库可以使用图形界面方式和SQL指令的方式,由于SQL指令方式较为复杂,这里 ...

  4. ionic准备之angular基础——格式化数据以及过滤器(8)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 字符串截取 及 substr 和 substring 的区别

    1..字符串截取 str.substr(0, 1) // 获取字符串第一个字符 str.substr(-1) // 获取字符串最后一个字符 str.charAt(str.length - 1) // ...

  6. 使用浏览器地址栏调用CXF Webservice的写法

    /* * 通过url调用 * http://localhost:8080/EFP/webService/TestWebservice/testOut/arg0/liuyx */ http://loca ...

  7. centos针对postgres出现的postgresql Ident authentication failed for user

    首先:将/var/lib/..../pg_hba.conf文件中的indent全修改为trust即可. #local   all             all                    ...

  8. lua学习笔记(六)

    (2012-04-12 23:32:35) 转载▼   函数  定义     function mytest(a,b,c) <函数体> end     mytest = function( ...

  9. NYOJ 492 King (状态压缩)

    做题感悟:做完这题发现状态压缩有很多须要优化的地方. 解题思路:状态压缩 開始自己用的一般的思路,就和炮兵阵地,郑厂长等题类似的方法做的,開始超时,然后把数组开到了最小的极限就险过.然后看了别人的代码 ...

  10. 利用github Pages和Jekyll搭建blog实践1

    你必须要懂一点git和网页开发.安装了git,并且有github账户. github设计了Pages功能,允许用户自定义项目首页 github提供模板,允许站内生成网页,但也允许用户自己编写网页,然后 ...