前言
本文给大家介绍的是利用Python抓取手机归属地信息,文中给出了详细的示例代码,相信对大家的理解和学习很有帮助,以下为Python代码,较为简单,供参考。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# -*- coding:utf-8 -*-
import requests,re
o = open ( 'data.txt' , 'a' )
e = open ( 'error.txt' , 'a' )
baseUrl = 'http://www.iluohe.com/'
r = requests.get( 'http://www.iluohe.com/all.shtml' ,)
links = re.findall( '<a href="(city/.*?/.*?)" target' ,r.content.decode( "gbk" ).encode( "utf-8" ))
for link in links:
link = baseUrl + link
cityData = requests.get(link)
if cityData.status_code > = 300 :
e.writelines(link + "\n" )
else :
cityData = cityData.content.decode( "gbk" ).encode( "utf-8" )
provinceTemp = re.findall( '<div class="NameSzu"><a href=".*?">(.*?)</a></div>' ,cityData)
if provinceTemp:
province = provinceTemp[ 0 ]
city = re.findall( '<meta name="description" content="(.*?)共有' ,cityData)[ 0 ]
tempData = re.findall( '<div class="ab_menu.*?</span>(.*?) \(.*?</div>.*?<ul>(.*?)</ul>' ,cityData)
for temp in tempData:
carrier = temp[ 0 ]
numbers = re.findall( '">(.*?)</a></li>' ,temp[ 1 ])
for number in numbers:
text = number + "," + carrier + "," + city + "," + province
o.writelines(text)
o.writelines( '\n' )
else :
e.writelines(link + "\n" )
o.close()
print "over!"
|
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
原文链接:http://www.biaodianfu.com/python-get-mobile-area.html