爬姓名大全网站的姓名

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
31
32
33
#coding=utf-8
import  urllib2
import  re
from  bs4  import  BeautifulSoup
import  sys
reload (sys)  
sys.setdefaultencoding( 'utf-8'
def  getHtml(url):
    page = urllib2.urlopen(url)
    html = page.read()
    return  html
url = "http://www.yw11.com/html/mi/3-85-0-1.htm"
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12'
headers = { "User-Agent" :user_agent}
request = urllib2.Request(url,headers = headers)
html = getHtml(request)
# print html
soup = BeautifulSoup(html, 'html.parser' )
divs = soup.find_all( 'div' ,attrs = { "class" : "listbox1_text" })[ 0 ]
ul = divs.find_all( 'ul' )[ 0 ]
lis = ul.find_all( 'li' )
f = open ( 'name1.txt' , 'a' )
for  index  in  range ( len (lis)):
     # print lis[index].text
     name = lis[index].text.lstrip()
     f.write(name)
     f.write( '\r\n' )
print  "抓取了" + str (index) + "个名字"
f.close()
f = open ( 'name1.txt' , 'r' )
lines = f.readlines()
print  "当前一共有" + str ( len (lines))
f.close()

上面的程序是抓取网站起名网站

1
http: / / www.yw11.com / namelist.php

的名字的,点开每个姓,可以查看要抓的数据的格式,分析一下数据的格式就可以很好的用BS匹配出来了。

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
<div  class = "listbox1_text" >
     <ul>
         <li>
             刘佳乐< / li>
         <li>
             刘慧娴< / li>
         <li>
             刘嘉源< / li>
         <li>
             刘建成< / li>
         <li>
             刘艾佳< / li>
。。。。。。。。。。。。。。。。。。。
             刘威铭< / li>
         <li>
             刘焕军< / li>
         <li>
             刘舒锦< / li>
         <li>
             刘瑾炎< / li>
         <li>
             刘瑾昭< / li>
     < / ul>
     <div  class = "clear" >
         &nbsp;< / div>
< / div>

PS:博主这里找到每个姓,然后打开他所在的页面提取网址然后粘贴到程序的。。。。还是有点麻烦。。。。应该想办法把那些网址全部匹配出来然后统一抓取。。。。。后期有时间再说吧。毕竟实验室项目需要自己造数据,时间有点紧~~



本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1749909

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值