zoukankan      html  css  js  c++  java
  • python之大作业

    一、题目要求

    获得网页中A-Z所有名字并且爬取名字详情页中的信息,如姓名,性别,,说明等,并存放到csv中(网址:http://www.thinkbabynames.com/start/0/A

    现在得到了所要的信息,但是还没有存入csv中

    网页截图:

    二、题目分析以及解答

    首先要获得从A-Z网页连接,规律为只有最后一个字母改变,所以代码如下:

    def get_url():#得到A-Z所有网站
        urls=[]
        for i in range(1, 27):
            i = chr(i+96)
            urls.append('http://www.thinkbabynames.com/start/0/%s'%i)
        return urls
        pass

    利用循环得到从A-Z所有网页链接,然后再爬取所有名字,名字详情页的连接以及所需内容,代码如下:

    def parse_html(url):#得到所有名字以及连接,爬取所需内容
        docx=requests.get(url)
        soup=BeautifulSoup(docx.content,'html.parser')
        c_txt1=soup.find('section',{'id':'index'}).findAll('b')
        url=[]
        for x in c_txt1:
            if x.find('a'):
                i=x.find('a')['href'].split("/")[-1]#使用正则表达式获得所有名字
                url.append('http://www.thinkbabynames.com/meaning/0/%s'%i)#获得所有名字详情页链接
                r=requests.get('http://www.thinkbabynames.com/meaning/0/%s'%i)
                result=r.text
                bs=BeautifulSoup(result,'html.parser')
                li=bs.find('div',class_='content').find('h1')
                print("EnNama:")
                Enname=li.text[8::1]#使用切片语法获得详情页名字(s[x:y:z]x为起始,y为终止,z为步长)
                print(Enname)
                print("Gender:")
                Gender=li.text[1:8:1]#使用切片语法获得详情页名字
                print(Gender)
                li1=bs.find('section',id='meaning').find('p')
                print("Description:")
                Description=li1.text
                print(Description)
                print()
        pass

     运行结果部分截图:

     下一步操作是把爬取到的信息存到csv中,正在努力中。

  • 相关阅读:
    第一次个人作业-热身
    OO总结
    oo第三单元总结
    oo第二单元总结
    软件工程 —— 课程回顾与个人总结
    BUAA软件案例分析——智能表单抽取识别
    软件工程—结对项目博客
    轨迹预测文献阅读整理(轨迹多样性、车辆轨迹、图神经网络、潜码)
    软件工程
    软件工程
  • 原文地址:https://www.cnblogs.com/sndd/p/12035073.html
Copyright © 2011-2022 走看看