• 牛奶布丁
    2019-03-09
    老师,微博登录时需要验证码怎么处理呢?

    作者回复: 这个最好用第三方工具,比如八爪鱼这种

     1
     11
  • 一语中的
    2019-03-08
    数据思维和算法是我的薄弱项,还在一节一节敲之前例子中的代码,但selenium和爬虫是强项,8种定位方法结合WebDriverWait,再加上ActionChains中的方法和js基本天天用。
    虽然学的有点虐(除了本课程最近同时在补《利用python进行数据分析》《精益数据分析》)但是很开心~~~

    作者回复: 不错的图书分享

    
     7
  • 王彬成
    2019-03-08
    利用Selenium在微博用户页面点击关注,弹出新的小窗口,但是程序显示无法定位到“取消按钮”。通过网上查找,说是需要driver.switchTo().fame("")重新定位页面,但是运行失败,求指导。
    https://www.cnblogs.com/ella-yao/p/7762352.html
    
     4
  • 王彬成
    2019-03-09
    取消关注时,必须登录账户
    ______________
    #模拟微博自动登录
    from selenium import webdriver
    import time
    browser=webdriver.Chrome('./chromedriver')

    # 登陆微博
    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='**********'
    password='*********'
    weibo_login(username,password)



    # 取消指定的用户
    def out_follow(uid):
        browser.get('https://m.weibo.cn/u/'+str(uid))
        time.sleep(1)
        #browser.find_element_by_id("follow").click()
        out_follow_button=browser.find_element_by_xpath('//*[@id="app"]/div[1]/div[4]/div[2]/div/div[1]/div/span/h4')
        out_follow_button.click()
        time.sleep(1)
        
        # 点击取消关注
        out_button1=browser.find_element_by_xpath('//*[@id="app"]/div[1]/div[4]/div[2]/div/div[1]/div/div/ul/li[2]/div/h4')
        out_button1.click()
        
        #再次确认取消关注
        out_button2=browser.find_element_by_xpath('//*[@id="app"]/div[2]/div[1]/div[2]/footer/div[2]/a')
        out_button2.click()
        time.sleep(1)
    # 每天学点心理学 UID
    uid='1890826225'
    out_follow(uid)
    展开

    作者回复: Good Job

    
     2
  • 滢
    2019-04-23
    一直提示这个问题 driver.find_elements_by_css_selector("[node-type='publish']").click()
    AttributeError: 'list' object has no attribute 'click' 老师能帮忙看下嘛?
    另外,一直在刷一直在刷 微博不让登录来,课后练习后面补上

    作者回复: 还是可以登录的,你也可以考虑用八爪鱼试试

     2
     1
  • 梁林松
    2019-03-11
    我发现只要直接点击私信 udi就出现了。
    https://api.weibo.com/chat/#/chat?to_uid=1890826225
    
     1
  • third
    2019-03-09
    问题
    1.可能是我不玩微博的原因吧,为什么我点击每天学点心理学主页的左边关注后面的1884976粉丝,得到的是https://weibo.com/p/1005051890826225/follow?relate=fans&from=100505&wvr=6&mod=headfans&current=fans#place这个网址?,怎么才能得到https://weibo.com/1890826225/fans
    2.强制等待1s主要是为了什么呢?是为了,防止反爬机制吗?那如果这样,设置成随机强制休眠是不是会更好?
    3.我反复测试,好像被微博发现了,现在进不去微博了。然后等一时间又能进去了
    4.当我进入微博的主页的时候,并没有保持登录状态,变成了无登录状态,要设置成保持登录状态吗?
    5.作业
    def unfollow(uid):
        browser.get('https://m.weibo.com/u/'+str(uid))
        already_concerned_button=browser.find_element_by_xpath("//div[@class='m-diy-btn m-box-col m-box-center m-box-center-a'][1]//span")
        already_concerned_button.click()
        time.sleep(1)
        unfollow_buttom=browser.find_element_by_xpath("//div[4]//li[2]")
        unfollow_buttom.click()
        time.sleep(1)
        confirm_buttom=browser.find_element_by_xpath("//div[@class='m-box-col'][2]")
        time.sleep(1)
    uid='1890826225'
    # add_follw(uid)
    unfollow(uid)
    展开
    
     1
  • 王彬成
    2019-03-09
    css_selector定位总结
    https://www.cnblogs.com/yahutiaotiao/p/8044849.html

    作者回复: 不错的分享

    
     1
  • 梁林松
    2019-03-08
    给打家介绍一个XPath的小窍门: 下载 XPath Helper插件,安装后 在网页上选取想要提取的元素, 点击右键 选中 检查 然后 开发者工具自动打开 你可以看到 HTML代码 ,选中然后再次点击右键,选中copy 里的 copy to xpath这样就得到了xpath的值了。

    作者回复: 对 XPath Helper很好用

     2
     1
  • 志
    2019-03-08
    课后练习取消关注模块:
    # 取关指定的用户
    def unfollow(uid):
        browser.get('https://m.weibo.com/u/'+str(uid))
        time.sleep(1)
        unfollow_button = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div[4]/div[2]/div/div[1]/div')
        unfollow_button.click()
        time.sleep(1)
        # 选择取消关注
        uf_button = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div[4]/div[2]/div/div[1]/div/div/ul/li[2]/div')
        uf_button.click()
        time.sleep(1)
        # 确定取消
        confirm_button = browser.find_element_by_xpath('//*[@id="app"]/div[2]/div[1]/div[2]/footer/div[2]/a')
        confirm_button.click()
        time.sleep(1)
        
    # 每天学点心理学 UID
    uid = '1890826225'
    unfollow(uid)
    展开

    作者回复: Good Job

    
     1
  • 白夜
    2019-03-08
    老师,我想问问,每天学点心理学 里的内容,是从哪里找来的?不怕被举报抄袭吗
     1
     1
  • Lisa
    2019-08-29
    selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"textarea.W_input"}
      (Session info: chrome=76.0.3809.132)
    这个报错怎么处理???

    作者回复: 元素定位的问题

     1
    
  • 周志翔
    2019-07-23
    可能是这个网站用的比较多了,xpath定位变了

    作者回复: 有时候网站样式变化了,xpath也需要调整

    
    
  • 董大琳儿
    2019-06-28
    NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@class="m-btn m-btn-white m-btn-text-black"]"}
      (Session info: chrome=75.0.3770.100),,,一直在报错
     1
    
  • ping
    2019-04-28
    通过同样的方法,你可以查看“取消”这个按钮对应的 HTML , 但是就是没找到:
    no such element: Unable to locate element

    
    
  • 随便讲两句
    2019-04-03
    关注/取消关注用 [ https://m.weibo.cn/profile/:uid ] 这个页面也很方便。

    # 取消关注
    def unfollow(uid):
        browser.get('https://m.weibo.cn/profile/' + str(uid))
        browser.implicitly_wait(5)
        time.sleep(1)
        browser.find_element_by_xpath("//a[@class='m-btn m-btn-block m-btn-lite-white']").click()
        time.sleep(1)
        browser.find_element_by_xpath("//a[@class='m-btn m-btn-white m-btn-text-orange']").click()
        time.sleep(1)
    展开

    作者回复: Good Sharing

    
    
我们在线,来聊聊吧