温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

【更新】爬取姓名大全的名字

发布时间:2020-07-12 12:38:19 来源:网络 阅读:902 作者:努力的C 栏目:开发技术

接上文,可以不用一个网址一个网址的输入了,能抓取页面

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

上列出的所有名字大全,不必再像上一个程序一样一个网址一个网址的输入了。嘿嘿。


#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
def getAllUrl(url):
	html=getHtml(url)
	soup=BeautifulSoup(html,'html.parser')
	ul=soup.find_all('ul',attrs={'class':'e3'})[0]
	a=ul.find_all('a')
	# for i in a:
	# 	urls=i['href']
	# 	print urls
	# print "一共有"+str(len(a))
	return a
url='http://www.yw11.com/namelist.php'
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}
urls=getAllUrl(url)
f=open('name.txt','a')
for index in range(len(urls)):
	lianjie=urls[index]['href']
	mingzi=urls[index].text
	print "正在抓取姓"+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')
	for index in range(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()


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI