• 爬虫实战 爬取糗事百科


    偶然看到了一些项目,有爬取糗事百科的,我去看了下,也没什么难的

    首先,先去糗事百科的https://www.qiushibaike.com/text/看一下,

    先检查一下网页代码,

    就会发现,需要爬取的笑话内容在一个span标签里,而且父标签是class为content的div里,那就很简单了,用select方法,先找到该文件,然获取下来并保存在txt文件里。比较枯燥。

    直接贴代码吧

    from bs4 import BeautifulSoup
    import lxml
    import requests
    
    #url = 'https://www.qiushibaike.com/text/'
    
    def spyder(url):
        try:
            print(url)
                #模拟浏览器
            kv = {'user-agent':'Mozilla/5.0'}
            r = requests.get(url , headers = kv)
                #状态码检查,用于
            r.raise_for_status()
                #print(r.text)
            r.encoding = r.apparent_encoding
            soup = BeautifulSoup(r.text,'lxml')
            s = soup.select("div.content>span")
            data = open(r"qiushi.txt","w", encoding="utf-8")
    
            txt = "hello"
    
            for i in range(25):
                txt = s[i].text
                print(txt)
                data.write(txt)
    
            data.close()
    
        except:
            ("爬取失败")
    
    def main():
          
        for i in range(13):
            url = 'https://www.qiushibaike.com/text/page/'
            url=url+str(i+1)
            #print(url)
            spyder(url)
    
    main()4

    这段代码能直接爬取13页的内容,不过在保存的时候有个小毛病,只能保存最后的代码,我也懒得去管了,毕竟实现功能了嘛,如果有兴趣可以稍加改动。

    在main里,我用了字符串拼接,主要是观察了下他的url的规律,也就避免了“自动翻页”

  • 相关阅读:
    洛谷P3406 海底高铁[差分 贪心]
    POJ3398Perfect Service[树形DP 树的最大独立集变形]
    POJ3928Ping pong[树状数组 仿逆序对]
    UVALive
    UVALive
    http协议进阶(二)URL与资源
    http协议进阶(一)HTTP概述
    http协议基础(十)实体首部字段
    http协议基础(九)响应首部字段
    http协议基础(八)请求首部字段
  • 原文地址:https://www.cnblogs.com/afei123/p/11234065.html
Copyright © 2020-2023  润新知