四时宝库

程序员的知识宝库

爬取小红书相关数据导入到excel

本期我们来进行实战,爬取小红书的相关数据导入到excel中,后续可进行些数据分析,今后或者已经在运营小红书的小伙伴应该比较喜欢这些数据。今天我们的主角是DrissionPage,相对于之前介绍的selenium省去了很多的配置,直接安装了就能使用。

DrissionPage 是一个基于 python 的网页自动化工具。它既能控制浏览器,也能收发数据包,还能把两者合而为一。可兼顾浏览器自动化的便利性和 requests 的高效率。它功能强大,内置无数人性化设计和便捷功能。它的语法简洁而优雅,代码量少,对新手友好。

使用pip进行安装

pip install DrissionPage

控制浏览器事例

from DrissionPage import ChromiumPage
# 创建页面对象,并启动或接管浏览器
page = ChromiumPage()
# 跳转到登录页面
page.get('https://gitee.com/login')
# 定位到账号文本框,获取文本框元素
ele = page.ele('#user_login')
# 输入对文本框输入账号
ele.input('您的账号')
# 定位到密码文本框并输入密码
page.ele('#user_password').input('您的密码')
# 点击登录按钮
page.ele('@value=登 录').click()

获取页面数据事例

from DrissionPage import SessionPage
# 创建页面对象
page = SessionPage()
# 爬取3页
for i in range(1, 4):
    # 访问某一页的网页
    page.get(f'https://gitee.com/explore/all?page={i}')
    # 获取所有开源库<a>元素列表
    links = page.eles('.title project-namespace-path')
    # 遍历所有<a>元素
    for link in links:
        # 打印链接信息
        print(link.text, link.link)

下面我们来看看如何利用DrissionPage爬取小红书相关数据。

首先,我们先登录小红书 写一个登陆的函数,第一次运行时留几秒钟进行扫码登录。

def login():
    sign_in_page = ChromiumPage()
    sign_in_page.get('https://www.xiaohongshu.com')
    print("请扫码登录")
    # 第一次运行需要扫码登录
    time.sleep(10)

登录后我们通过关键字进行搜索相关小红书店铺

def search(keyword):
    global page
    page = ChromiumPage()
    page.get(f'https://www.xiaohongshu.com/search_result?keyword={keyword}&source=web_search_result_notes')

右击检查源代码,我们发现所有的内容都包含在 class=“feeds-container”中,我们利用page.eles获取所有的元素。

def crawler():
	 container = page.ele('.feeds-container')
   sections = container.eles('.note-item')
   for section in sections:
       name = section('.name').text
       count= section('.count').text
       footer = section.ele('.footer', timeout=0)
       url = footer.ele('tag:a', timeout=0).link
       title= footer.ele('tag:span', timeout=0).text

最后把查询到的内容通过pandas导入到excel中。

#将上面的查询结果append到datalist
data = DataFrame(datalist)
df = pd.DataFrame(data)
# 删除重复行
df = df.drop_duplicates()
df.to_excel('%s.xlsx' %keyword, index=False)

运行结果如下:

具体的源码我已放到了面包多中
https://mbd.pub/o/bread/ZpWUlZ9r 敢兴趣的小伙伴可以去看看

限时福利:关注公众号:小妖同学学习记 ,点击“与我联系” 添加微信可直接获取相关源码。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接