温馨提示×

温馨提示×

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

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

【更新】比较智能的爬取姓名

发布时间:2020-09-23 16:38:12 来源:网络 阅读:417 作者:努力的C 栏目:开发技术

接前面的博文,前面不好控制抓取的页数,现在可以较好的控制~~看看代码

#coding=utf-8
import urllib,urllib2
import re
from bs4 import BeautifulSoup
import time
import sys
reload(sys)  
sys.setdefaultencoding('utf-8')
#获取要下载图片的整个页面的信息
def getHtml(url):
    page=urllib2.urlopen(url)
    html=page.read()
    # print html
    return html
 #筛选数据并打印到本地
def getImg(html):
    soup=BeautifulSoup(html,'html.parser')
    dls=soup.find_all('dl',attrs={'class':'feed_list'})
    for index in range(len(dls)):
        p=dls[index].find_all('p')[0]
        print p.text
    f=open("testname.txt","a")
    for index in range(len(dls)):
        nicheng=dls[index].find_all('p')[0].text
        f.write(nicheng)
        f.write('\r\n')
    f.close()
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}
page=59
length=0
while page<100000:
    url='http://www.qzone.cc/wangming/day/list_'+str(page)+'.html'
    print "正在爬取第"+str(page)+"页......."
    # print "这里呢"
    request=urllib2.Request(url,headers=headers)
    html=getHtml(request)
    # soup=BeautifulSoup(open('nextmingzi.html'),"html.parser")
    soup=BeautifulSoup(html,"html.parser")
    li=soup.find_all('li',attrs={'class':'next'})[0]
    a=li.find_all('a')[0]['href']
    print str(a)
    getImg(html)
    if(str(a)=='javascript:;'):
        print "最后一页啦........"
        break
    else:
        page=page+1
        continue
    time.sleep(0.5)
f=open('testname.txt','r')
lines=f.readlines()
print "当前一共"+str(len(lines))+"条昵称"
f.close()

就是以前说的,分析一下前面几页的“下一页”和最后一页的“下一页”的href,就可以看到区别了。。。。感觉我这个比较low~~不过也能实现,嘿嘿

向AI问一下细节

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

AI