дублирование входного URL-адреса в дополнительном фрейме данных после очистки - PullRequest
1 голос
/ 06 июня 2019

Соскоб работает (веб-сайт со списком из 6 продуктов), однако я хотел бы также добавить baseurl к фрейму данных в конце.В идеале в конце кадра данных.Меня не волнует название заголовка. В будущем у меня будет несколько URL в «URL».

Как я могу это сделать?

До:

0 1        2
1 product1 h
2 product2 t
3 product3 t
4 product4 p
5 product5 s
6 product6 :

После:

0 1        2
1 product1 baseurl
2 product2 baseurl
3 product3 baseurl
4 product4 baseurl
5 product5 baseurl
6 product6 baseurl

Код:

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd
from selenium import webdriver
from pandas import DataFrame


urls = [
    'this is where the site url is'
] 

final = []
with requests.Session() as s:
    for url in urls:
        driver = webdriver.Chrome('/Users/Documents/python/Selenium/bin/chromedriver')
        driver.get(url)
        soup = bs(driver.page_source, 'lxml')
        items  = soup.select('.grid-item-content')
        titles  = [item.text.strip() for item in items]
        baseurl = url
        results = list(zip(titles,baseurl))
        final.append([results])
df = pd.DataFrame(results)
df.to_csv(r'output.csv', sep=',', encoding='utf-8',index = False )
driver.quit()

печать (названия):

[product1,product2,product3,product4,product5,product6]

печать (baseurl):

[url] <--- only has one result

1 Ответ

2 голосов
/ 06 июня 2019

Вам нужно изменить

list(zip(titles,baseurl))

до

list(zip(titles,[baseurl] * len(titles)))

Чтобы каждый элемент в URL получал копию baseurl во время архивирования

...