【发布时间】:2019-01-22 11:39:30
【问题描述】:
我有两个打印件要写入单个 CSV 文件到列 A 和列 B
我的问题是,当我在最后同时打印(第一次和第二次打印)时,我只得到一个元素,我猜是因为它不在循环内左右。
print((text), (link[0:-9]))
结果:
LMFCIIC PWFERT-BK
LMFCIIC PMFEP-BK
LMFCIIC LMF8CC-BL
LMFCIIC PMFEP-GY
LMFCIIC ASPCP-NV
LMFCIIC LWBASK-PK
LMFCIIC LWBATA-PK
LMFCIIC LWBATOP-PK
LMFCIIC LMF8CC-RD
我的第一个打印看起来像这样:我想将它打印到列 A
PWFERT-BK
PMFEP-BK
LMF8CC-BL
PMFEP-GY
ASPCP-NV
LWBASK-PK
LWBATA-PK
LWBATOP-PK
LMF8CC-RD
我的第二次打印看起来像这样:我想将它打印到列 B
LMFCIIC
LWBASK
LWBATA
LWBATOP
LMFCIIC
这是我的完整代码:
from bs4 import BeautifulSoup
from selenium import webdriver
import html5lib
import time
import requests
driver_path = '/usr/local/bin/chromedriver 2'
driver = webdriver.Chrome(driver_path)
driver.implicitly_wait(10)
driver.get('https://www.tenniswarehouse-europe.com/zzz/producttracker_bl.html?ccode=SWIMG030')
try:
iframe = driver.find_elements_by_tag_name('iframe')
for i in range(0, len(iframe)):
f = driver.find_elements_by_tag_name('iframe')[i]
driver.switch_to.frame(i)
# your work to extract link
text = driver.find_element_by_tag_name('body').text
text = text.replace("Code: ","")
text = text.replace("No Copy Images to TW Server","")
print(text)
driver.switch_to_default_content()
finally:
driver.quit()
resp = requests.get('https://www.tenniswarehouse-europe.com/zzz/producttracker_bl.html?ccode=SWIMG030')
soup = BeautifulSoup(resp.text,"lxml")
for frame in soup.findAll('img'):
link = (frame['src'])
link = link.split('=')[1]
print ((link[0:-9]))
- 我使用了 www.example.com,因为我的网络无法访问该链接
【问题讨论】:
-
您可以使用 pandas 库,它有一个名为 df.to_csv("filename.csv") 的方法,您可以使用它将其保存到 csv
-
不要将
print转换为 CSV。使用csvpackage 而不是重新发明轮子。 -
@zvone - 你介意告诉我应该在哪里更改我的代码,这样我就可以节省时间而不是重新发明轮子吗?
-
谁能指导我正确的道路,好吗?
-
@Andie31 请解决代码最后 4 行的缩进问题
标签: python csv web-scraping