【更新】爬取姓名大全的名字
接上文,可以不用一个网址一个网址的输入了,能抓取页面
http://www.yw11.com/namelist.php
上列出的所有名字大全,不必再像上一个程序一样一个网址一个网址的输入了。嘿嘿。
#coding=utf-8importurllib2importrefrombs4importBeautifulSoupimportsysreload(sys)sys.setdefaultencoding('utf-8')defgetHtml(url):page=urllib2.urlopen(url)html=page.read()returnhtmldefgetAllUrl(url):html=getHtml(url)soup=BeautifulSoup(html,'html.parser')ul=soup.find_all('ul',attrs={'class':'e3'})[0]a=ul.find_all('a')#foriina:#urls=i['href']#printurls#print"一共有"+str(len(a))returnaurl='http://www.yw11.com/namelist.php'user_agent='Mozilla/5.0(Macintosh;IntelMacOSX10_10_4)AppleWebKit/600.7.12(KHTML,likeGecko)Version/8.0.7Safari/600.7.12'headers={"User-Agent":user_agent}urls=getAllUrl(url)f=open('name.txt','a')forindexinrange(len(urls)):lianjie=urls[index]['href']mingzi=urls[index].textprint"正在抓取姓"+mingzi+"的名字......"request=urllib2.Request(lianjie,headers=headers)html=getHtml(request)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')forindexinrange(len(lis)):name=lis[index].text.lstrip()#左对齐f.write(name)f.write('\r\n')print"抓取了"+(str(index)+1)+"个"+mingzi+"名字"f.close()f=open('name.txt','r')lines=f.readlines()print"当前一共有"+str(len(lines))f.close()
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。