我问了一个我认为我不清楚的问题。我已经成功地从网站主页上抓取了帖子。下一步是点击帖子中的链接到它的详细信息页面,这样我就可以抓取详细内容。这是我试图修改的代码,但它不起作用。请注意,我是新手,我在 django 应用程序中使用它。
def sprinkle():
url_two = 'http://www.example.com'
html = requests.get(url_two, headers=headers)
soup = BeautifulSoup(html.text, 'html5lib')
titles = soup.find_all('div', {'class': 'entry-pos-1'})
entries = [{'href': url_two + div.a.get('href'),
'comment': BeautifulSoup(url_two + div.a.get('href')).find_all('div', {'class': 'article-body'}),
'src': url_two + div.a.img.get('data-original'),
'text': div.find('p', 'entry-title').text,
} for div in titles][:6]
return entries
在我看来
sp = sprinkle()
context = {
"comment": sp
}
在我的模板中
{% for s in sp %}
{{s.comment}}
{% endfor %}
在html中它显示的是
[]
我试图抓取的 url 看起来像这样
http://www.example.com//article/218582/detail-art
http://www.example.com//article/218817/detail-science
http://www.example.com//article/218542/detail-theatre
如何使用链接转到详细信息页面并从该页面抓取数据?
请您参考如下方法:
这会起作用
def sprinkle():
url_two = 'http://www.vladtv.com'
html = requests.get(url_two, headers=headers)
soup = BeautifulSoup(html.text, 'html5lib')
titles = soup.find_all('div', {'class': 'entry-pos-1'})
def make_soup(url):
the_comments_page = requests.get(url, headers=headers)
soupdata = BeautifulSoup(the_comments_page.text, 'html5lib')
comment = soupdata.find('div', {'class': 'article-body'})
para = comment.find_all('p')
return para
entries = [{'href': url_two + div.a.get('href'),
'src': url_two + div.a.img.get('data-original'),
'text': div.find('p', 'entry-title').text,
'comments': make_soup(url_two + div.a.get('href'))
} for div in titles][:6]
return entries
但我解决它的方式方括号仍然显示
