Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';t写入csv文件的结果略有不同_Python_Python 3.x_Csv_Web Scraping_Beautifulsoup - Fatal编程技术网

Python Can';t写入csv文件的结果略有不同

Python Can';t写入csv文件的结果略有不同,python,python-3.x,csv,web-scraping,beautifulsoup,Python,Python 3.x,Csv,Web Scraping,Beautifulsoup,我创建了一个脚本来解析网页中不同帖子的标题和链接,并将其写入csv文件。剧本写得很好。我在该csv文件中的输出在A列中包含title,在B列中包含link。然而,我喜欢做的是编写它们略有不同,如第1行中的title和第2行中的link,依此类推 更清楚地说: 是我当前的输出 这就是我希望实现的目标 我试过: import csv import requests from bs4 import BeautifulSoup from urllib.parse import urljoin base

我创建了一个脚本来解析网页中不同帖子的标题和链接,并将其写入csv文件。剧本写得很好。我在该csv文件中的输出在A列中包含
title
,在B列中包含
link
。然而,我喜欢做的是编写它们略有不同,如第1行中的
title
和第2行中的
link
,依此类推

更清楚地说:

是我当前的输出

这就是我希望实现的目标

我试过:

import csv
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

base = "https://stackoverflow.com"
url = "https://stackoverflow.com/questions/tagged/web-scraping"

res = requests.get(url,headers={"User-Agent":"Mozilla/5.0"})
soup = BeautifulSoup(res.text,"html.parser")
with open('stackoverflow.csv','w',newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['title','link'])
    for items in soup.select(".summary"):
        title = items.select_one(".question-hyperlink").get_text(strip=True)
        link = urljoin(base,items.select_one(".question-hyperlink").get("href"))
        writer.writerow([title,link])
如何实现上图所示的第二个输出?

替换

writer.writerow([title,link])


你为什么要那样做。。那根本没有道理。。但是如果你真的想,你应该有两个writerow调用:writer.writerow(['title',title]),writer.writerow(['link',link])。。应删除forloop外部的writerow。。
writer.writerow(['title',title])
writer.writerow(['link',link])