PinPy uses Python and Selenium and helps you to automate your Pinterest marketing strategy by bulk and smart pinning.
PinPy is a Pinterest bot that helps you to automate your Pinterest marketing strategy by bulk and smart pinning.
Let me show and explain the details of how you can use PinPy step by step.
PinPy needs a few libraries required to work. Some of these are Python's standard libraries and do not require installation. These are :
Besides, you must install the Selenium library. You will find a simple installation below, but if you need it, you can get more information about the library from the website.
Using pip, you can install Selenium like this:
pip3 install selenium
You will also need to download the webdriver you will use after installation. The current codes are written using the Chrome driver.
Correctly editing the board details increases the content marketing success of the program. Each board is designed as a library key in the program. Let's see the template first :
board_data = {"board_category_1": {
"keywords": ["KEYWORD1", "KEYWORD2", "KEYWORD3", "KEYWORD4", "KEYWORD5"],
"link": "//*[@title='YOUR_PINTEREST_BOARD_NAME']",
"tags": "#HASHTAG1 #HASHTAG2 #HASHTAG3 #HASHTAG4 #HASHTAG5 #HASHTAG6"},
"board_category_2": {
"keywords": ["KEYWORD1", "KEYWORD2", "KEYWORD3", "KEYWORD4", "KEYWORD5", "KEYWORD6", "KEYWORD7", "KEYWORD8" ],
"link": "//*[@title='YOUR_PINTEREST_BOARD_NAME']",
"tags": "#HASHTAG1 #HASHTAG2 #HASHTAG3 #HASHTAG4 #HASHTAG5"},
}
We will go through a real example to make it more understandable. Let's say we have two boards in our Pinterest account.
In this case, we can edit the structure like this.
board_data = {"development": {
"keywords": ["PYTHON", "JAVASCRIPT", "FREECODECAMP", "HTML", "CSS", "DEVELOPER", "PROGRAMMING", "TUTORIAL"],
"link": "//*[@title='Developer's Corner']",
"tags": "#developer #development #python #freecodecamp #coding "},
"photography": {
"keywords": ["PHOTOGRAPHY", "CAMERA", "PORTRAIT", "NATURE", "CANON", "NIKON", "PHOTO" ],
"link": "//*[@title='Professional Photography World']",
"tags": "#photography #photo #landscape #camera #nature #portrait "},
}
Decisions about the boards can be arranged entirely according to your preferences. For example, instead of adding all development articles to the same board, you can create different boards such as Python, Javascript, React, etc. with more detailed keywords and hashtags.
There are a few things to consider when making board structures:
You need a pin name to keep track of the program's flow and define the Pinterest boards.
For example, you downloaded the images from the internet and the names like this : black_and_white_ui_ux_design-r38548522b52d4124bd270cf8060f89b3_jz0n5.jpg
. As we have seen, the name of the image here is actually black and white ui ux design
. So we can do the following to get this result.
def pre_name():
ind = img.find("-")
product = img[:(ind)]
pre_name = product.replace("_", " ")
pre_name = pre_name.upper()
return pre_name
At the end of the process, we have a pin named BLACK AND WHITE UI UX DESIGN
. You can edit this section by the name of the images you have, but at the last return
step, the name must be written in capital letters.
Hashtags allow your pins to reach more people. When specifying the boards, you also defined the hashtags for that board. However, if there is a more general hashtag that fixes all your pins, you can add them to this section.
PinPy matches the images in the images
folder with the links in the links.txt
document. Therefore, the order of the images and the links are necessary. You can see the code flow of this process below. You don't need to make any changes in this section, but understanding the matching process correctly can help you use the program more effectively.
# Getting images from the file
image_list = []
for filename in glob.glob('images/*.jpg'):
filename = filename[7:]
image_list.append(filename)
# Getting links from the file
link_list = []
link_file = open("links.txt", "r")
for link in link_file:
link = link.rstrip()
link_list.append(link)
# Making link-image pairs
pairs = {}
for i in range(len(image_list)):
pairs[image_list[i]] = link_list[i]
The program works very efficiently while sharing our own images and links. However, we may wish to share content on a website that we do not control. There are some points you need to pay attention to use the program effectively in such cases. For example, let's say that we want to share some articles from the FreeCodeCamp blog.
We have four images and links from four blog posts we want to share. These are as you can see below.
As you can see, the order of the images is not the same as the order of the links. This causes the program to make wrong image-link pairs. There are also no keywords in the image names that the program can recognize. At such times, we can try a few different solutions depending on the suitability of the situation.
In our example, we can solve the problem by changing the names of the images. Since all the images are suitable for the same Pinterest board, we can make bulk naming.
As a result of this process, we were able to sort our images.
Now our images are in the same order as our links and the program can pin them to the right board by defining their content.
In the following versions, I am working on a system that will pin the program by downloading images and links from a given web page. Until then, you can use the following two Chrome extensions.