[本文出自天外归云的博客园]

从64365网站获取全国各地律师电话号,用到了python的lxml库进行对html页面内容的解析,对于xpath的获取和正确性校验,需要在火狐浏览器安装firebug和firepath插件。页面内容如下(目标是爬“姓名+电话”):

代码如下:

# coding:utf-8
from lxml import etree
import requests,lxml.html,os class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value) def get_lawyers_info(url):
r = requests.get(url)
html = lxml.html.fromstring(r.content)
phones = html.xpath('//span[@class="law-tel"]')
names = html.xpath('//div[@class="fl"]/p/a')
if(len(phones) == len(names)):
list(zip(names,phones))
phone_infos = [(names[i].text, phones[i].text_content()) for i in range(len(names))]
else:
error = "Lawyers amount are not equal to the amount of phone_nums: "+url
raise MyError(error)
phone_infos_list = []
for phone_info in phone_infos:
if(phone_info[1] == ""):
#print phone_info[0],u"没留电话"
info = phone_info[0]+": "+u"没留电话\r\n"
#print phone_info[0],phone_info[1]
else:
info = phone_info[0]+": "+phone_info[1]+"\r\n"
print info
phone_infos_list.append(info)
return phone_infos_list def get_pages_num(url):
r = requests.get(url)
html = lxml.html.fromstring(r.content)
result = html.xpath('//div[@class="u-page"]/a[last()-1]')
pages_num = result[0].text
if pages_num.isdigit():
return pages_num def get_all_lawyers(cities):
dir_path = os.path.abspath(os.path.dirname(__file__))
print dir_path
file_path = os.path.join(dir_path,"lawyers_info.txt")
print file_path
if os.path.exists(file_path):
os.remove(file_path)
#input()
with open("lawyers_info.txt","ab") as file:
for city in cities:
#file.write("City:"+city+"\n")
#print city
pages_num = get_pages_num("http://www.64365.com/"+city+"/lawyer/page_1.aspx")
if pages_num:
for i in range(int(pages_num)):
url = "http://www.64365.com/"+city+"/lawyer/page_"+str(i+1)+".aspx"
info = get_lawyers_info(url)
for each in info:
file.write(each.encode("gbk")) if __name__ == '__main__':
cities = ['beijing','shanghai','guangdong','guangzhou','shenzhen','wuhan','hangzhou','ningbo','tianjin','nanjing','jiangsu','zhengzhou','jinan','changsha','shenyang','chengdu','chongqing','xian']
get_all_lawyers(cities)

这里对热门城市进行了爬网,输入结果如下(保存到了当前目录下的“lawyers_info.txt”文件中):

Python爬网获取全国各地律师电话号的更多相关文章

  1. Python爬网——获取安卓手机统计数据

    [本文出自天外归云的博客园] 1. 在安卓网上对热门机型进行爬网,取前五十: # -*- coding: utf-8 -*- import requests,re from bs4 import Be ...

  2. Docker最全教程之Python爬网实战(二十一)

    Python目前是流行度增长最快的主流编程语言,也是第二大最受开发者喜爱的语言(参考Stack Overflow 2019开发者调查报告发布).笔者建议.NET.Java开发人员可以将Python发展 ...

  3. python下载文件(图片)源码,包含爬网内容(爬url),可保存cookie

    #coding=utf-8 ''' Created on 2013-7-17 @author: zinan.zhang ''' import re import time import httplib ...

  4. Jsoup获取全国地区数据(省市县镇村)(续) 纯干货分享

    前几天给大家分享了一下,怎么样通过jsoup来从国家统计局官网获取全国省市县镇村的数据.错过的朋友请点击这里.上文说到抓取到数据以后,我们怎么转换成我们想要格式呢?哈哈,解析方式可能很简单,但是有一点 ...

  5. python爬取天气后报网

    前言 大二下学期的大数据技术导论课上由于需要获取数据进行分析,我决定学习python爬虫来获取数据.由于对于数据需求量相对较大,我最终选择爬取 天气后报网,该网站可以查询到全国各地多年的数据,而且相对 ...

  6. Python学习-使用Python爬取陈奕迅新歌《我们》网易云热门评论

    <后来的我们>上映也有好几天了,一直没有去看,前几天还爆出退票的事件,电影的主题曲由陈奕迅所唱,特地找了主题曲<我们>的MV看了一遍,还是那个感觉.那天偶然间看到Python中 ...

  7. python爬取当当网的书籍信息并保存到csv文件

    python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...

  8. Python 爬取赶集网租房信息

    代码已久,有可能需要调整 #coding:utf-8 from bs4 import BeautifulSoup #有这个bs4不用正则也可以定位要爬取的内容了 from urlparse impor ...

  9. 全国315个城市,用python爬取肯德基老爷爷的店面信息

    我觉得我生活在这世上二十多年里,去过最多的餐厅就是肯德基小时候逢生日必去,现在长大了,肯德基成了我的日常零食下班后从门前路过饿了便会进去点分黄金鸡块或者小吃拼盘早上路过,会买杯咖啡.主要快捷美味且饱腹 ...

随机推荐

  1. oracle表大小

    查某一用户下的表 select SEGMENT_NAME,TABLESPACE_NAME,sum(BYTES/1024/1024)||'M'  from USER_extents where SEGM ...

  2. ORM系列之三:Dapper

    目录 1.Dapper 简介 2.Dapper 安装 3.Dapper 使用 Dapper简介 Dapper是一个轻量级的ORM框架,短小精悍,正如其名.对于小项目,使用EF,NHibernate这样 ...

  3. POI获取excel单元格红色字体,淡蓝色前景色的内容

    如果是Microsoft Excel 97-2003 工作表 (.xls) if(31 == cell.getCellStyle().getFillForegroundColor()) //判断单元格 ...

  4. 使用clearInterval清除计时循环时,最后一次循环还是会执行解决办法

    原代码: var interv=setInterval(function(){ alert("setInterval执行"); },2000) clearInterval(inte ...

  5. Web测试的常用测试用例与知识

    1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性 ...

  6. WP8.1 和UWP 如何使用下载网页的上的音频 并保存

    WP8.1: private async Task<StorageFile> GetVoiceData() { HttpClient httpclient = new HttpClient ...

  7. 英康手机订单系统APP使用说明

    1.登陆手机APP 输入卖家提供的账号和密码登陆APP. 2.商品购买列表 可以在全部商品.促销商品.收藏商品.最近订购.再次购买等几种商品列表下把商品加入购物车: 3.加入商品到购物车 点击商品列表 ...

  8. [原创]LoadRunner 12.02 录制脚本时提示无Internet访问,如何解决?

    在使用LoadRunner 12.02 进行录制脚本时提示无Internet访问,如下图: 翻译中文如下: 可以尝试以下方式解决:点击弹出框中的“Yes”即可. 若还是有问题,尝试以下方式: (1)L ...

  9. SQL Server 不清空数据,修改数据库字段、结构,阻止保存要求重新创建表的更改

    当数据库有数据修改数据库字段时,默认是阻止的! 工具---选项---设计器---阻止保存要求重新创建表的更改(取消钩)

  10. oracle指令

    删除用户和用户下所有的表: drop user user_name cascade; 导入数据库: cd /home/oracle/app/admin/orcl/dpdump impdp   dire ...