爬姓名大全网站的姓名

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

上一篇:2019阿里云双11活动-MySQL 8.0 高可用版高可用版2核4G


下一篇:Day02 阿里云ECS进阶七天实践营-基于ECS快速搭建Docker环境