【发布时间】:2018-07-22 12:04:46
【问题描述】:
我想抓取主网站上所有帖子的标题。 main 是一个包含 6 或 7 个 url 的列表:
import requests
from bs4 import Beautifulsoup
r=requests.get("https://forums.oneplus.com/")
s=BeautifulSoup(r.content)
links=s.find_all("a",{"class" : "focus-content"})
url2=[]
for link in links:
url2.append(link.get("href"))
url1="https://forums.oneplus.com/"
for u in url2:
main=url1+u
print(main)
for m in main:
r1=requests.get(m)
s1=BeautifulSoup(r1)
title=s1.find("span", {"class" : "title"})
print(title)
【问题讨论】:
-
您不能将请求对象传递给美丽的汤。你应该这样做:
r1=requests.get(m).text。 BS4 也可能会给你一个警告:BeautifulSoup(r1, 'html.parser')。然后打印 title 不会给你你想要的东西,title.text会(因为 title 是一个汤元素对象,而不是一个字符串)。您没有正确返回标题,我建议将它们附加到列表中。 -
你没有告诉我们你的代码有什么问题。它会给出错误吗?它根本没有做任何事情吗?
标签: python web-scraping beautifulsoup python-requests