职贝云数AI新零售门户
标题:
数据采集实战:如何自动化运营微博?
[打印本页]
作者:
taojin168
时间:
2022-12-31 13:13
标题:
数据采集实战:如何自动化运营微博?
自动化测试工具
Selenium 更关注程序执行的流程本身,比如找到指定的元素,设置相应的值,然后点击操作。Puppeteer 是阅读者的视角,比如光标移动到某个元素上,键盘输入某个内容等。
假如想定位一个元素,可以经过 id、name、class、tag、链接上的全部文本、链接上的部分文本、XPath 或者 CSS 停止定位,在 Selenium Webdriver 中提供了这 8 种方法方便定位元素。
经过 id 定位:运用 find_element_by_id() 函数。比如定位 id=loginName 的元素,就可以运用 browser.find_element_by_id(“loginName”)。经过 name 定位:运用 find_element_by_name() 函数,比如对 name=key_word 的元素停止定位,就可以运用 browser.find_element_by_name(“key_word”)。经过 class 定位:可以运用 find_element_by_class_name() 函数。经过 tag 定位:运用 find_element_by_tag_name() 函数。经过 link 上的残缺文本定位:运用 find_element_by_link_text() 函数。经过 link 上的部分文本定位:运用 find_element_by_partial_link_text() 函数。有时分超链接上的文本很长,经过查找部分文本内容就可以定位。经过 XPath 定位:运用 find_element_by_xpath() 函数。运用 XPath 定位的通用性比较好,由于当 id、name、class 为多个,或者元素没有这些属性值的时分,XPath 定位可以协助完成义务。经过 CSS 定位:运用 find_element_by_css_selector() 函数。CSS 定位也是常用的定位方法,相比于 XPath 来说更简约。
在获取某个元素之后,就可以对这个元素停止操作了,对元素停止的操作包括:
清空输入框的内容:运用 clear() 函数;在输入框中输入内容:运用 send_keys(content) 函数传入要输入的文本;点击按钮:运用 click() 函数,假如元素是个按钮或者链接的时分,可以点击操作;提交表单:运用 submit() 函数,元素对象为一个表单的时分,可以提交表单;
模拟微博的自动登录
from selenium import webdriver
import time
browser = webdriver.Chrome()
# 登录微博
def weibo_login(username, password):
# 打开微博登录页
browser.get('https://passport.weibo.cn/signin/login')
browser.implicitly_wait(5)
time.sleep(1)
# 填写登录信息:用户名、密码
browser.find_element_by_id("loginName").send_keys(username)
browser.find_element_by_id("loginPassword").send_keys(password)
time.sleep(1)
# 点击登录
browser.find_element_by_id("loginAction").click()
time.sleep(1)
# 设置用户名、密码
username = 'XXXX'
password = "XXXX"
weibo_login(username, password)
复制代码
模拟微博自动加关注
# 添加指定的用户
def add_follow(uid):
browser.get('https://m.weibo.com/u/'+str(uid))
time.sleep(1)
#browser.find_element_by_id("follow").click()
follow_button = browser.find_element_by_xpath('//div[@class="m-add-box m-followBtn"]')
follow_button.click()
time.sleep(1)
# 选择分组
group_button = browser.find_element_by_xpath('//div[@class="m-btn m-btn-white m-btn-text-black"]')
group_button.click()
time.sleep(1)
# 每天学点心思学UID
uid = '1890826225'
add_follow(uid)
复制代码
写评论,发微博
# 给指定某条微博添加内容
def add_comment(weibo_url, content):
browser.get(weibo_url)
browser.implicitly_wait(5)
content_textarea = browser.find_element_by_css_selector("textarea.W_input").clear()
content_textarea = browser.find_element_by_css_selector("textarea.W_input").send_keys(content)
time.sleep(2)
comment_button = browser.find_element_by_css_selector(".W_btn_a").click()
time.sleep(1)
# 发文字微博
def post_weibo(content):
# 跳转到用户的首页
browser.get('https://weibo.com')
browser.implicitly_wait(5)
# 点击右上角的发布按钮
post_button = browser.find_element_by_css_selector("[node-type='publish']").click()
# 在弹出的文本框中输入内容
content_textarea = browser.find_element_by_css_selector("textarea.W_input").send_keys(content)
time.sleep(2)
# 点击发布按钮
post_button = browser.find_element_by_css_selector("[node-type='submit']").click()
time.sleep(1)
# 给指定的微博写评论
weibo_url = 'https://weibo.com/1890826225/HjjqSahwl'
content = 'Gook Luck!好运已上路!'
# 自动发微博
content = '每天学点心思学'
post_weibo(content)
复制代码
欢迎光临 职贝云数AI新零售门户 (https://www.taojin168.com/cloud/)
Powered by Discuz! X3.5