map语法获取index_python获取慧聪企业信息
'''使用python获取慧聪企业联系方式作者:菜鸟虫师Mac时间:2020.7.24'''import requestsimport jsonfrom lxml import etreeTARGET = 'https://s.hc360.com/company/search.html?'HEADERS = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0',}# 要post的参数DATA = { 'kwd': None, 'pnum': None,}# 向首页发起请求,获取企业信息页面的urldef get_index_url(): # 首页的请求方式是post res = requests.post(url=TARGET, headers=HEADERS, params=DATA) html = etree.HTML(res.content.decode()) # 获取企业信息的url(如图1) get_contacts_urls = list(html.xpath('//a[@]/@href')) # 要在每个href前面加上'https:'才能成为一个真正的url,进行下一步的访问 get_contacts_urls = map(lambda x: 'https:' + x, get_contacts_urls) return (list(get_contacts_urls))# 向企业信息页面的url发起请求,获取企业信息def get_cpns_infos(url): res = requests.get(url=url, headers=HEADERS) html = etree.HTML(res.text) # 企业的联系信息都在这个
下的内
# cpns_infos = html.xpath('//div[@]//ul/li') cpns_infos = html.xpath('//div[@]//ul')
# 字典:存放企业联系信息
cpns_datas = {}
for cpns_info in cpns_infos:
cpns_datas['公司名称'] = cpns_info.xpath('//div[@]/text()')[0]
# 联系人姓名
contacts = cpns_info.xpath('//div[@]/span/a/text()')[0]
# 职位
position = cpns_info.xpath('//div[@]/span/text()')[0]
# 联系人姓名+职位(去掉\xa0\xa0)
cpns_datas['联系人'] = "".join((contacts + position).split())
# QQ
QQ = cpns_info.xpath('//a[@]/text()')
# 有QQ,则去掉本身的QQ:以及括号
if QQ:
qq = QQ[0].strip("( QQ:)")
cpns_datas['QQ'] = qq
# 没有QQ,则显示'没有QQ'
else:
cpns_datas['QQ'] = '没有QQ'
cpns_datas['公司电话'] = cpns_info.xpath('//div[@node-name="telephone"]/text()')
cpns_datas['手机号码'] = cpns_info.xpath('//div[@node-name="mp"]/text()')
cpns_datas['其他电话'] = cpns_info.xpath('//div[@node-name="otherTelephone"]/text()')
cpns_datas['官网'] = cpns_info.xpath(
'//div[@]/a[contains(@onmousedown,"contact_detail_homepage")]/text()')[0].strip(
"\r\n\t\t").replace(" ", "")
# 地址(在最后一个的div内)
cpns_datas['地址'] = cpns_info.xpath('//li[last()]/div[@]/text()')[0]
# 转化为json格式,以便保存
cpns_datas_json = json.dumps(cpns_datas, ensure_ascii=False)
# 将信息保存到JSON文件中
save_infos(cpns_datas_json)
# 保存信息
def save_infos(data):
with open('HuiCong.json', 'a') as f:
f.write(data)
print("OK!")
# 逻辑函数
def main():
# 要获取的城市
DATA['kwd'] = '广州'
# 前N页的内容
for i in range(3):
DATA['pnum'] = (i + 1)
urls = get_index_url()
for url in urls:
get_cpns_infos(url)
if __name__ == '__main__':
main()
图1如下:
获取到的内容如下:
map语法获取index_python获取慧聪企业信息相关推荐
- Python爬虫获取企查查公开的企业信息
1.参考博文 https://blog.csdn.net/qq_39295735/article/details/84504848?utm_medium=distribute.pc_relevant. ...
- 【mysql数据库】通过python 3.7 爬虫获取企查查公开的企业信息,并记录到数据库
1.爬虫的思路参考这篇博文 https://mp.csdn.net/postedit/83628587 2.数据库保存截图如下 3.python代码如下 #!/usr/bin/python3 #-*- ...
- 爬虫-获取指定城市所有企业信息
之前写过一个博客:python爬虫从企查查获取企业信息-手工绕开企查查的登录验证 https://blog.csdn.net/rock4you/article/details/88254612 但只能 ...
- BeautifulSoup解析库select方法实例——获取企业信息
本文内容由浙江浦江中学方春林老师提供. Requests 是用Python语言编写,基于urllib,采用Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以 ...
- 企业网络推广时网站获取排名离不开企业网络推广文章内容的更新
搜索引擎在抓取网站排名时,网站内容价值性的体现瞬间放大,与此同时,网站内容更新频率也是不容小觑的.对于企业网站运营优化期间,不同类型的企业网站可以选择不同的内容更新频率,那么怎样针对企业网站制定合理的 ...
- 【Groovy】map 集合 ( 根据 Key 获取 map 集合中对应的值 | map.Key 方式 | map.‘Key’ 方式 | map[‘Key’] 方式 | 代码示例 )
文章目录 一.根据 Key 获取 map 集合中对应的值 1.通过 map.Key 方式获取 map 集合中的值 Value 2.通过 map.'Key' 方式获取 map 集合中的值 Value 3 ...
- python爬虫从企查查获取企业信息-手工绕开企查查的登录验证
想要从企查查爬取企业信息,如果没有登录直接检索,邮箱.电话都被隐藏了: 上面的图片是之前截的图,今天再次检索,好像又可见了: 不过单击查看详情时,还是会被隐藏: 不管怎么说,只要企查查想限制登录,总会 ...
- React map遍历点击获取key
React map遍历点击获取key值 在使用react的时候不免需要遍历循环出dom,这时候可以通过点击过去产生的的每个dom的标识来操作 首先准备一个需要遍历循环的集合,可以是键值对,也可以是数组 ...
- 函数语法:JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度(转载)...
网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...
最新文章
- mysql的聚合函数综合案例_MySQL常用聚合函数详解
- 全息归约,全息算法。
- Windows Server 2012R2 WDS部署Windows 7
- 不想当亿万富翁的程序员不是好老板
- boost / vs2017 编译 boost 1.68.0 的过程说明
- Jib –为Spring Boot应用程序构建docker映像
- stm32+lwip(四):网页服务器测试
- IntelliJ IDEA 2017.3-2018.1 全系列汉化包
- 摄影专业学生,没有摄影棚,怎么练摄影?
- python 会计师事务所_Selenium爬取会计师事务所新闻信息——以中准会计师事务所为例...
- 深度有趣 | 29 方言种类分类
- Linux应用总结:自动删除n天前日志
- wireshark常用选项与功能总结【10分钟成为抓包大师】
- 关于正则表达式的学习
- ins服务器未响应,Ins注册及登陆问题简明教程
- 著名球星罗纳尔迪尼奥担任巴西旅游大使
- 当复制Web浏览器的SVN地址到TorioseSVN上时显示错误,无法解析URL
- 【创作赢红包】如何提高写作水平?让写作成为你的强项。
- JAVA听力源码,【VOA英语听力】Remembering 2001: A Space Odyssey 50 Years Later
- 电子称DIY(贴应变片+写代码)
热门文章
- wampserver 调试 php,phpstrom+wampserver+xdebug配置
- cent os mysql 内存_Cent OS – MySQL – 主从配置
- 查询中where和having的区别
- hadooppythonsql_实例讲解hadoop中的hive查询(python语言实现)
- 基于JAVA+SpringMVC+Mybatis+MYSQL的高校社团管理系统
- ilm 和dlm差异_Oracle 的信息生命周期管理工具(ILM assistant)
- Linux之iptables(六、rich规则)
- 究竟 javascript 错误处理有哪些类型?
- springboot情操陶冶-@SpringBootApplication注解解析
- 解决MySQL在修改列时因为外键依赖出错的问题