Ins刷粉丝 --Ins自助下单
统计数据观当今世界
那个工程项目的最终目标是创建两个Villamblard的广告主覆盖范围,作为两个附带项,它或许能提升我产品销售相片的中文网站的网络流量!
一年前,也是我那次采用Ins时,我采用了两个能窥见谁中止了对你的高度关注的插件。透过它我辨认出了一种以获取影迷的方式。透过刊登文章、雅雷并高度关注许多人,来赢得回粉,接着两天之后再对那些人中止高度关注。
这种方式并没有使我感觉到吃惊,即使我知道Ins上会存有许多机器,但使我想保有两个自己的Ins机器。
这是我为何会创建那个工程项目,让他们现在开始吧。当我已经开始自学Selenium并企图找寻许多工程项目来采用它时,我想不到了两个单纯的Python机器。Selenium就像两个插件,你能很难地在Python中与之进行可视化。
便是当今世界须要的!另两个Instagram机器……
我的快照保有相同主轴或艺术风格的相片,从大街小巷摄影家到内景,再到旅途相片之类。即使马赛是我的故乡,所以我也有许多那儿的相片。那些单厢成为我要采用的热门话题条码。
但是,这并不是两个在24半小时假若赢得1000影迷的机器。(萨德基文能窥见,译者构筑的那个机器帐号不但著重影迷量的增长,还在意影迷的类别与产品质量。)
所以他们在谈及怎样的hondayz速率?
布季谢两个相同的条码运行机器几次,如travelblogger,travelgram,马赛,dronephotography。在三天的过程中,我从380个影迷数变成了800个。还收获了许多赞和文章,甚至许多有机增长(粉我的人,但我的机器并没有高度关注他)。
要明确的是,我没有密集采用那个机器,即使如果你运行太快,Instagram将停止响应。它须要在动作之间有许多间隔命令,即使透过短时间内进行大量文章或高度关注,Instagram会停止响应。
那个过程中,你须要登录帐户,因此我几乎能肯定,如果速率过快,Instagram能知道您已经开始做许多奇怪的事情。最重要的是,在对十两个主轴条码执行此操作之后,在相同的主轴条码中找到新用户变得更加困难。您须要花两天时间来刷新用户群。
但我不想在那个过程中高度关注这么多人……
机器会保存两个列表,其中包含在运行时所高度关注的所有用户,因此有一天我可能会对此列表执行某些操作。例如,我能访问每个用户个人资料,评估他们有多少影迷或帖子,并决定是否要继续高度关注他们。或者我能在他们的图库中以获取第一张图片并检查其日期以查看他们是否是活跃用户。
如果他们从机器中删除高度关注操作,我能向您保证增长率会受到影响,即使人们不太愿意基于单个雅雷或文章来对你进行高度关注。
这是最后两个副标题!
你须要Python(我采用的是Python 3.7),Selenium,两个插件(在我的情况下我将采用Chrome)和…显然,两个Instagram帐户!关于机器的快速概述:
- 打开插件并登录帐号
- 对于hashtag列表中的每个hashtag,它将打开页面并单击第一张图片将其打开
- 接着它会雅雷,高度关注,文章并移动到下一张图片,共200迭代循环(数字能调整)
- 采用机器保存您所高度关注的所有用户的列表
如果你达到了这一段,谢谢!你完全应该收到你的奖励!如果您辨认出这对你个人有任何帮助,请在下面分享您的经验:)
Ins涨粉机器源码第一部分:
import pandas as pd from selenium import webdriver from selenium.webdriver.common.keys import Keys from time import sleep, strftime from random import randint import pandas as pd chromedriver_path = C:/Users/User/Downloads/chromedriver_win32/chromedriver.exe Change this to your own chromedriver path! webdriver = webdriver.Chrome(executable_path=chromedriver_path) sleep(2) webdriver.get(https://www.instagram.com/accounts/login/?source=auth_switcher) sleep(3) username = webdriver.find_element_by_name(username) username.send_keys(your_username) password = webdriver.find_element_by_name(password) password.send_keys(your_password) button_login = webdriver.find_element_by_css_selector(react-root > section > main > div > article > div > div:nth-child(1) > div > form > div:nth-child(3) > button) button_login.click() sleep(3) notnow = webdriver.find_element_by_css_selector(body > div:nth-child(13) > div > div > div > div.mt3GC > button.aOOlW.HoLwm) notnow.click() comment these last 2 lines out, if you dont get a pop up asking about notifications
为了采用chrome与Selenium,你须要安装chromedriver。这是两个相当单纯的过程,我没有遇到任何问题。只需安装并更换上面的路径即可。完成后,他们的变量webdriver将打开两个Chrome条码页。
在源码中,您应该采用您自己的用户名和相应的密码替换字符串。您可能已经注意到,在运行时,Chrome会打开两个新条码。在密码之后,将登录按钮定义为对象,在下一行中,实现对其单击。
如果你想知道那些奇怪的字符串是什么,不要害怕!那是用来为机器指路的代码,只需右键单击要映射的元素并选择检查,即可轻松赢得此字符串。
进入检查模式后,找到与您要映射的内容相对应的HTML代码。右键单击它并将鼠标悬停在复制上。您将看到有关于如何复制它的许多选项。我在整个代码中采用了混合的XPath和CSS选择器(它在find_element_方式中可见)。我花了一段时间才能让所有引用顺利运行。有时,css或xpath定向会失败,但是当我调整间隔时间后,一切都开始顺利运行。
在这种情况下,我选择了copy selector并将其粘贴到find_element_方式中。它会为您找到第两个结果。如果是find_elements,将检索所有元素,您能指定要以获取的元素。
一旦完成迭代循环。您能在hashtag_list中添加更多主轴条码。如果您是第一次运行它,您没有包含您所高度关注用户的文件,因此您只需将prev_user_list创建为空列表即可。
一旦运行一次,它将保存带有时间戳的csv文件及其所高度关注的用户。该文件将在第二次运行时充当prev_user_list。单纯易懂地实现对机器的跟踪。
hashtag_list = [travelblog, travelblogger, traveler] prev_user_list = [] - if its the first time you run it, use this line and comment the two below prev_user_list = pd.read_csv(20181203-224633_users_followed_list.csv, delimiter=,).iloc[:,1:2] useful to build a user log prev_user_list = list(prev_user_list[0]) new_followed = [] tag = -1 followed = 0 likes = 0 comments = 0 for hashtag in hashtag_list: tag += 1 webdriver.get(https://www.instagram.com/explore/tags/+ hashtag_list[tag] + /) sleep(5) first_thumbnail = webdriver.find_element_by_xpath(//*[@id="react-root"]/section/main/article/div[1]/div/div/div[1]/div[1]/a/div) first_thumbnail.click() sleep(randint(1,2)) try: for x in range(1,200): username = webdriver.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/article/header/div[2]/div[1]/div[1]/h2/a).text if username not in prev_user_list: If we already follow, do not unfollow if webdriver.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/article/header/div[2]/div[1]/div[2]/button).text == Follow: webdriver.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/article/header/div[2]/div[1]/div[2]/button).click() new_followed.append(username) followed += 1 Liking the picture button_like = webdriver.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/article/div[2]/section[1]/span[1]/button/span) button_like.click() likes += 1 sleep(randint(18,25)) Comments and tracker comm_prob = randint(1,10) print({}_{}: {}.format(hashtag, x,comm_prob)) if comm_prob > 7: comments += 1 webdriver.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/article/div[2]/section[1]/span[2]/button/span).click() comment_box = webdriver.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/article/div[2]/section[3]/div/form/textarea) if (comm_prob < 7): comment_box.send_keys(Really cool!) sleep(1) elif (comm_prob > 6) and (comm_prob < 9): comment_box.send_keys(Nice work :)) sleep(1) elif comm_prob == 9: comment_box.send_keys(Nice gallery!!) sleep(1) elif comm_prob == 10: comment_box.send_keys(So cool! :)) sleep(1) Enter to post comment comment_box.send_keys(Keys.ENTER) sleep(randint(22,28)) Next picture webdriver.find_element_by_link_text(Next).click() sleep(randint(25,29)) else: webdriver.find_element_by_link_text(Next).click() sleep(randint(20,26)) some hashtag stops refreshing photos (it may happen sometimes), it continues to the next except: continue for n in range(0,len(new_followed)): prev_user_list.append(new_followed[n]) updated_user_df = pd.DataFrame(prev_user_list) updated_user_df.to_csv({}_users_followed_list.csv.format(strftime("%Y%m%d-%H%M%S"))) print(Liked {} photos..format(likes)) print(Commented {} photos..format(comments)) print(Followed {} new people..format(followed))
代码非常单纯。如果你了解许多Python的基本概念,你能快速读懂它。
循环中的print语句能让他们实时跟踪机器,看它处于第几次迭代。它将显示它所在的主轴条码,迭代次数以及为文章操作生成的随机数。我决定不在每个页面刊登文章,所以我添加了三个相同的文章和1到10之间的随机数,这将定义是否有任何文章或三者中的两个。循环结束,他们将new_followed用户附带到先前的用户database并采用时间戳保存新文件。您还会收到一份小报告。
让那个机器在服务器上运行会更好,但是我还有其他想要探索的工程项目,配置服务器不是其中之一!请随意在下面刊登文章,我会尽力回答您的问题。