У меня есть база данных MongoDB с документами, которые содержат массив под названием «ссылки» с элементом для каждой веб-страницы, которая была просканирована на предыдущем шаге. Также включены в качестве идентификатора и домена для веб-сайта.
Вот пример документа:
{
"_id": {
"$oid": "5eabc5085ad3f439d5dc6940"
},
"domain": "http://www.linnlanes.com/",
"links": ["http://www.linnlanes.com/index.html", "http://www.linnlanes.com/ContactUS/contactus.htm", "http://www.linnlanes.com/HoursRates/rates.htm", "http://www.linnlanes.com/Food/Menu.htm", "http://www.linnlanes.com/BowlingSpecials/specials.htm", "http://www.linnlanes.com/BirthdaySpecials/parties.htm", "http://www.linnlanes.com/ProShop/proshop.htm", "http://www.linnlanes.com/Tournaments/tournaments.htm", "http://www.lebanonusbc.org/Leagues/leagues.htm", "http://www.LebanonUSBC.org/", "http://www.linnlanes.com/BowlingSpecials/tacotuesday.htm", "http://www.linnlanes.com/BowlingSpecials/niteowl.htm"]
}
Я пытаюсь вытащить данные в Python Dataframe через pymon go и pandas. Мой пример кода следующий:
import pymongo
import pandas as pd
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["crawler"]
mycol = mydb["links"]
myquery = {"links": {"$regex": u"contact"}}
df = pd.DataFrame(mycol.find(myquery))
print(df['links'])
Когда я запускаю приведенный выше код, я получаю все документы, которые имеют "контакт", в одном из своих элементов "ссылки". Проблема в том, что он тянет каждый элемент «ссылок». Я хочу получить только тот элемент, который содержит «контакт». Я открыт для другого метода выполнения функции «как», кроме регулярного выражения, как показано.
Что я получаю:
0 [http://www.linnlanes.com/index.html, http://w...
Name: links, Length: 414, dtype: object
Что я хочу получить:
0 [http://www.linnlanes.com/ContactUS/contactus.htm]
Name: links, Length: 414, dtype: object