Как мне запустить скребок для каждой записи в базе данных?

#python #database #screen-scraping

#питон #База данных #очистка экрана

Вопрос:

Я собираю данные с помощью библиотеки запросов и анализирую их с помощью Beautiful Soup.

Я храню очищенные данные в базе данных mysql.

Я хочу запускать скребок каждый раз, когда он находит новую запись в таблице.

Ответ №1:

Предполагая, что у вас уже есть свой метод очистки, давайте назовем его scrape_data()

Вы можете использовать MySQL-Python-Connector для запуска запроса к базе данных напрямую для очистки при чтении каждой строки (хотя вы можете захотеть сохранить их в памяти для обработки отключений)

 # Importing the MySQL-Python-connector
import mysql.connector as mysqlConnector

# Creating connection with the MySQL Server Running. Remember to use your own credentials.
conn = mysqlConnector.connect(host='localhost',user='root',passwd='root')

# Handle bad connections
if conn:
    print("Connection Successful :)")
else:
    print("Connection Failed :(")

# Creating a cursor object to traverse the resultset
cur = conn.cursor()

# Assuming the column is called data in a table called table. Replace as needed.
cur.execute("SELECT data FROM table")
for row in cur:
    scrape_data(row[0]) # Assumes data is the first column.

# Closing the connection - or you will end up with a resource leak
conn.close()
 

Примечание

Вы можете найти официальный коннектор здесь.