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
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
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 ''
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
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
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 ''
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 ''
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
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 ''
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 ''