空结果集美汤
empty result set beautiful soup
从纽约时报网站抓取文章并得到一个空结果集。我的目标是获取 urls 和 h3 项的文本。当我 运行 这个时,我得到一个空集。打印 section scrape 表明我在正确的道路上......
目标 url - http://query.nytimes.com/search/sitesearch/?action=click&contentCollection®ion=TopBar&WT.nav=searchWidget&module=SearchSubmit&pgtype=sectionfront#/san+diego/24hours
url = "http://query.nytimes.com/search/sitesearch/?action=click&contentCollection®ion=TopBar&WT.nav=searchWidget&module=SearchSubmit&pgtype=sectionfront{data}"
html = urlopen(url.format(data="#"+'/san+diego/24hours'))
soup = BeautifulSoup(html.read().decode('utf-8'),"lxml")
section = soup.find("ol",class_='searchResultsList flush')
items = section.find_all('li', class_="story")
print items
HTML 确实不包含数据。查看 Chrome 开发人员工具中的网络选项卡,您可以看到搜索结果是由 AJAX 查询获取的 URL: http://query.nytimes.com/svc/add/v1/sitesearch.json?q=san%20diego&begin_date=24hoursago&facet=true
这是发现的屏幕截图:
您必须打开开发人员工具(尝试查看菜单),选择网络选项卡,重新加载页面,然后环顾四周。 XHR = XmlHttpRequest 现在被称为 AJAX 请求。这意味着一些 Javascript 向服务器请求数据。
这是JSON,所以你真的很幸运,因为这比解析HTML要好得多。
从纽约时报网站抓取文章并得到一个空结果集。我的目标是获取 urls 和 h3 项的文本。当我 运行 这个时,我得到一个空集。打印 section scrape 表明我在正确的道路上...... 目标 url - http://query.nytimes.com/search/sitesearch/?action=click&contentCollection®ion=TopBar&WT.nav=searchWidget&module=SearchSubmit&pgtype=sectionfront#/san+diego/24hours
url = "http://query.nytimes.com/search/sitesearch/?action=click&contentCollection®ion=TopBar&WT.nav=searchWidget&module=SearchSubmit&pgtype=sectionfront{data}"
html = urlopen(url.format(data="#"+'/san+diego/24hours'))
soup = BeautifulSoup(html.read().decode('utf-8'),"lxml")
section = soup.find("ol",class_='searchResultsList flush')
items = section.find_all('li', class_="story")
print items
HTML 确实不包含数据。查看 Chrome 开发人员工具中的网络选项卡,您可以看到搜索结果是由 AJAX 查询获取的 URL: http://query.nytimes.com/svc/add/v1/sitesearch.json?q=san%20diego&begin_date=24hoursago&facet=true
这是发现的屏幕截图:
您必须打开开发人员工具(尝试查看菜单),选择网络选项卡,重新加载页面,然后环顾四周。 XHR = XmlHttpRequest 现在被称为 AJAX 请求。这意味着一些 Javascript 向服务器请求数据。
这是JSON,所以你真的很幸运,因为这比解析HTML要好得多。