ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python微博用户主页小姐姐图片内容采集爬虫!

2020-11-26 15:01:49  阅读:208  来源: 互联网

标签:小姐姐 name img get Python self url 微博 path


python爬虫,微博爬虫,需要知晓微博用户id号,能够通过抓取微博用户主页内容来获取用户发表的内容,时间,点赞数,转发数等数据,当然以上都是本渣渣结合网上代码抄抄改改获取的!

要抓取的微博地址:https://weibo.com/u/5118612601

BUT,我们实际应用的抓取地址:https://m.weibo.cn/u/5118612601(移动端的微博地址)

LSP的最爱,各种小姐姐,随你任意爬取,快收藏起来啊!

通过浏览器抓包,我们可以获悉几个比较重要的参数:

type: uidvalue: 5118612601containerid: 1005055118612601

其实还有一个比较重要的参数,那就是翻页:'page':page!

还有一个SSL错误问题,大家可以自行处理!

#多线程下载图片

    def get_imgs(self,img_urls,img_path):

        threadings = []

        for img_url in img_urls:

            t = threading.Thread(target=self.get_img, args=(img_url,img_path))

            threadings.append(t)

            t.start()

 

        for x in threadings:

            x.join()

 

        print("多线程下载图片完成")

 

 

    def get_img(self, img_url,img_path):

        img_name = img_url.split('/')[-1]

        print(f'>> 正在下载图片:{img_name} ..')

        r = requests.get(img_url, timeout=8, headers=self.headers,verify=False)

        with open(f'{img_path}/{img_name}', 'wb') as f:

            f.write(r.content)

        print(f'>> 图片:{img_name} 下载完成!')

几个关键点

  • 获取 containerid 参数
    def get_containerid(self):        url = f'https://m.weibo.cn/api/container/getIndex?type=uid&value={self.uid}'        data = requests.get(url,headers=self.headers,timeout=5,verify=False).content.decode('utf-8')        content = json.loads(data).get('data')        for data in content.get('tabsInfo').get('tabs'):            if (data.get('tab_type') == 'weibo'):                containerid = data.get('containerid')         self.containerid=containerid
  • 获取 微博用户发表 数据
 
  • 多线程下载图片
    #多线程下载图片
    def get_imgs(self,img_urls,img_path):
        threadings = []
        for img_url in img_urls:
            t = threading.Thread(target=self.get_img, args=(img_url,img_path))
            threadings.append(t)
            t.start()
 
        for x in threadings:
            x.join()
 
        print("多线程下载图片完成")
 
 
    def get_img(self, img_url,img_path):
        img_name = img_url.split('/')[-1]
        print(f'>> 正在下载图片:{img_name} ..')
        r = requests.get(img_url, timeout=8, headers=self.headers,verify=False)
        with open(f'{img_path}/{img_name}', 'wb') as f:
            f.write(r.content)
        print(f'>> 图片:{img_name} 下载完成!')
 

本来还想搞个多进程,结果翻车了,报错各种头秃,那就不搞了!!

手里头有二份微博爬虫的源码,不同的爬取地址和思路,一起分享给大家,仅供参考学习!

一份还包含GUI界面,当然这是本渣渣参考的主要来源代码!

亲测可运行哈!!

 

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

 

标签:小姐姐,name,img,get,Python,self,url,微博,path
来源: https://blog.csdn.net/weixin_43881394/article/details/110187714

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有