예제 #1
0
    def search(self, fans_driver):
        print(self.visited_url)
        try:

            if fans_driver.current_url in self.visited_url:
                print fans_driver.current_url
                print('存在')
                return
            self.visited_url.add(fans_driver.current_url)
            address = FriendHomePage.address(fans_driver)
            username = FriendHomePage.user_name(fans_driver)
            if not '江苏' in address[0]:
                print('不在江苏')
                print(address[0])
                print(fans_driver.current_url)
                return
            if self.focus_check(fans_driver, address):
                FriendHomePage.focus_friend_action(fans_driver)
            fans_url = []
            while self.last_weibo_in_time:
                fans_url.extend(self.weibo_list(fans_driver, username))
                try:
                    WeiboPageCommon.next_page_action(fans_driver)
                except Exception as e:
                    print(e)
                    break

            print ''
            #搜索关注列表
            FriendHomePage.focus_action(fans_driver)
            focus_fans_list = FriendFoucsPage.fans_list_parsed(fans_driver)
            #搜索粉丝列表
            FriendFoucsPage.fans_action(fans_driver)
            fans_list = FriendFoucsPage.fans_list_parsed(fans_driver)
            focus_fans_list.extend(fans_list)
            url_list = []
            for fans in focus_fans_list:
                if '江苏' in fans.address[0]:
                    url_list.append(fans.href)

            fans_url.extend(url_list)
            fans_url = set(fans_url)
            self.un_visited_url = fans_url
            with open(self.un_visited_url_file_name, 'w') as file:
                pickle.dump(self.un_visited_url, file)
                print '保存未访问url'
            for url in fans_url:
                fans_driver.get(url)
                fans_driver.implicitly_wait(10)
                self.search(fans_driver)
                self.visited_url.add(url)
                self.un_visited_url.remove(url)
            with open(self.visited_url_file_name, 'w') as file:
                pickle.dump(self.visited_url, file)
                print '保存访问url'

        except Exception as e:
            print e
            return
예제 #2
0
 def get_weibo_url(self, weibo_driver):
     wei = WeiboPageCommon.weibo_parse(weibo_driver)
     if wei.comment_num > 0:
         WeiboPageCommon.comment_action(weibo_driver)
         comment_list = WeiboPageCommon.comment_list(weibo_driver)
         comment = WeiboPageCommon.comment_parse(comment_list[0])
         url = comment[0]
         return url
예제 #3
0
 def get_weibo_url(self, weibo_driver):
     wei = WeiboPageCommon.weibo_parse(weibo_driver)
     if wei.comment_num > 0:
         WeiboPageCommon.comment_action(weibo_driver)
         comment_list = WeiboPageCommon.comment_list(weibo_driver)
         comment = WeiboPageCommon.comment_parse(comment_list[0])
         url = comment[0]
         return url
예제 #4
0
 def search(self):
     driver = LoginController.get_firfox()
     LoginController.login(driver, self.name, self.passwd)
     driver.get('http://weibo.com/messages?topnav=1&wvr=6')
     list = MsgPage.get_other_fans_list(driver)
     list[0].click()
     list = MsgPage.get_other_fans_list(driver)
     for friend in list:
         friend.click()
         MsgPage.send_fans_msg(driver, u'hello')
         time.sleep(1)
     driver.get('http://weibo.com/duzijian?is_hot=1')
     weibo_list = [ WeiboPageCommon.weibo_parse(weibo)  for weibo in WeiboPageCommon.get_all_weibo(driver)]
     print ''
예제 #5
0
 def comment_fans_href(self, weibo_driver, username):
     comment_fans_list = WeiboPageCommon.parsed_comment_fans(weibo_driver)
     fans_url_list = []
     for fan in comment_fans_list:
         if fan[2] != username:
             fans_url_list.append(fan[0])
     return fans_url_list
예제 #6
0
 def __get_webibo_info(self, weibo_driver):
     try:
         #author_info = HomePage.show_fans_info(weibo_driver, self.browser)
         weibo = WeiboPageCommon.weibo_and_comment_parse(weibo_driver)
         #weibo.author_info = author_info
     except :
         traceback.print_exc()
         return None
     return weibo
예제 #7
0
    def fouces_friend_of_comment(self, webdriver):
        WeiboPageCommon.scroll(weibo.browser)
        time.sleep(3)
        WeiboPageCommon.scroll(weibo.browser)
        time.sleep(3)
        #获得所有微博
        weibo_list = WeiboPageCommon.get_all_weibo(webdriver)
        friend_address_list = []
        for weibo_driver in weibo_list[:9]:
            try:
                url = self.get_weibo_url(weibo_driver)
                if url:
                    friend_address_list.append(url)
            except Exception as e:
                print(e)
        for url in friend_address_list:
            try:
                print url
                self.foucs_friend(url, webdriver)
            except Exception as e:
                print(e)

        print ''
예제 #8
0
 def publish(self):
     self.browser.set_page_load_timeout(120)
     passwd_dict = PasswdUtil.get_passwd_dict()
     LoginController.mobile_login(self.browser, passwd_dict[Const.WEIBO_USERNAME], passwd_dict[Const.WEIBO_PASSWD])
     #LoginController.login_by_cookie(self.browser)
     print('等待4s,滚动屏幕')
     WeiboPageCommon.scroll(self.browser)
     time.sleep(4)
     WeiboPageCommon.scroll(self.browser)
     time.sleep(4)
     WeiboPageCommon.scroll(self.browser)
     time.sleep(4)
     print('等待结束')
     try:
         weibo_list =  WeiboPageCommon.get_all_weibo(self.browser)
     except:
         traceback.print_exc()
         self.browser.get('http://weibo.com/')
         time.sleep(4)
         weibo_list =  WeiboPageCommon.get_all_weibo(self.browser)
     print('需要解析的微博数目:' + str(len(weibo_list)))
     weibos = map(lambda weibo_driver:self.__get_webibo_info(weibo_driver), weibo_list)
     #weibos.extend(map(lambda weibo_driver:self.__get_webibo_info(weibo_driver), WeiboPageCommon.get_all_weibo(self.browser)[len(weibo_list):]))
     weibos = filter(lambda w : w is not None , weibos)
     #打开新的选项卡
     #self.browser.find_element_by_tag_name("body").send_keys(Keys.CONTROL + 't')
     #self.browser.execute_script("window.open('http://weibo.com/','_blank');")
     #wins = self.browser.window_handles
     #self.browser.switch_to_window(wins[1])
     #self.browser.set_window_size(1366, 768)
     map(lambda weibo:self.__get_weiboer_info(weibo), weibos)
     #self.browser.switch_to_window(wins[0])
     sorted_weibos = PublishStrategy.nums_strategy(weibos)
     WeiboPageCommon.forword_by_comment(self.browser, sorted_weibos[0])
     self.browser.close()
     self.browser.quit()
     print ''
예제 #9
0
    def fouces_friend_of_comment(self, webdriver):
        WeiboPageCommon.scroll(weibo.browser)
        time.sleep(3)
        WeiboPageCommon.scroll(weibo.browser)
        time.sleep(3)
        #获得所有微博
        weibo_list = WeiboPageCommon.get_all_weibo(webdriver)
        friend_address_list = []
        for weibo_driver in weibo_list[:9]:
            try:
                url = self.get_weibo_url(weibo_driver)
                if url:
                    friend_address_list.append(url)
            except Exception as e:
                print(e)
        for url in friend_address_list:
            try:
                print url
                self.foucs_friend(url, webdriver)
            except Exception as e:
                print(e)


        print ''
예제 #10
0
 def weibo_list(self, webdriver, username):
     fans_url = []
     WeiboPageCommon.scroll(webdriver)
     WeiboPageCommon.scroll(webdriver)
     #搜索评论
     weibo_list = [
         WeiboPageCommon.weibo_parse_simple(weibo)
         for weibo in WeiboPageCommon.get_all_weibo(webdriver)
     ]
     search_weibo_list = filter(self.time_check, weibo_list)
     for weibo in search_weibo_list:
         fans_href = self.comment_fans_href(weibo.weibo_driver, username)
         fans_url.extend(fans_href)
     return fans_url
예제 #11
0
    def focuos(self, webdriver):
        TopFrameAction.homeAction(webdriver)
        focus_box = webdriver.find_element_by_id('Pl_Core_T8CustomTriColumn__3')
        focus_box.find_element_by_link_text("关注").click()

if __name__ == '__main__':
    weibo = LoginController('13951640490', 'gongyong505.')
    weibo.login()
    time.sleep(5)
    weibo.browser.get('http://weibo.com/545352510')
    time.sleep(3)
    FriendHomePage.focus_action(weibo.browser)
    FocusPage.next_page_action(weibo.browser)
    f = FollowShipControl()
    f.fouces_friend_of_comment(weibo.browser)
    weibo_list = WeiboPageCommon.get_all_weibo(weibo.browser)
    time.sleep(3)
    for weibo_driver in weibo_list:
        wei = WeiboPageCommon.weibo_parse(weibo_driver)
        if wei.comment_num > 0:
            WeiboPageCommon.comment_action(weibo_driver)
            comment_list = WeiboPageCommon.comment_list(weibo_driver)
            comment = WeiboPageCommon.comment_parse(comment_list[0])
            url = comment[0]
            weibo.browser.get(url)
            FriendHomePage.focus_action(weibo.browser)
            break

    print ''

예제 #12
0
        TopFrameAction.homeAction(webdriver)
        focus_box = webdriver.find_element_by_id(
            'Pl_Core_T8CustomTriColumn__3')
        focus_box.find_element_by_link_text("关注").click()


if __name__ == '__main__':
    weibo = LoginController('13951640490', 'gongyong505.')
    weibo.login()
    time.sleep(5)
    weibo.browser.get('http://weibo.com/545352510')
    time.sleep(3)
    FriendHomePage.focus_action(weibo.browser)
    FocusPage.next_page_action(weibo.browser)
    f = FollowShipControl()
    f.fouces_friend_of_comment(weibo.browser)
    weibo_list = WeiboPageCommon.get_all_weibo(weibo.browser)
    time.sleep(3)
    for weibo_driver in weibo_list:
        wei = WeiboPageCommon.weibo_parse(weibo_driver)
        if wei.comment_num > 0:
            WeiboPageCommon.comment_action(weibo_driver)
            comment_list = WeiboPageCommon.comment_list(weibo_driver)
            comment = WeiboPageCommon.comment_parse(comment_list[0])
            url = comment[0]
            weibo.browser.get(url)
            FriendHomePage.focus_action(weibo.browser)
            break

    print ''