【发布时间】:2017-05-08 20:27:33
【问题描述】:
对于编程来说还是很新的,尤其是 Python。我一直在为 Kickstarter 页面制作网络爬虫。我一直在一个页面上从每个项目中获取所有信息,但是我一直这样做的方式相对杂乱无章。我想让这个刮板获取第一个项目,抓取数据,追加,然后转到下一个,但它被设置为从页面中抓取所有目标数据,只是希望它与最后正确的项目。
(任何好奇的人的链接:https://www.kickstarter.com/discover/advanced?category_id=16&woe_id=0&sort=newest&seed=2479798&page=1)
现在,我从每个数据中获取了更多数据,而不仅仅是简介和指向每个数据的链接,但下面是我一直在做的一些示例代码。 BeautifulSoup 有点令人困惑,因为我相信它将事物转换为不同的数据类型的方式,在我未经训练的眼中,这使得将 .find_next() 类型的东西串在一起变得更加困难。尤其是 Kickstarter,这些项目按每行 4 个项目组织。
关于如何实现它的任何想法:查找第一个项目 -> 抓取 -> 附加数组 -> 重复下一个项目?
pageGrab = BeautifulSoup(requests.get(url).content, "html.parser")
link_array = []
blurb_array = []
links = pageGrab.select('.project-title a')
blurb = pageGrab.select('.project-blurb')
for link in links:
rel_path = link.get('href')
path = urljoin(base_url, rel_path)
link_array.append(path)
for row in blurb:
blurb_array.append(row.string.strip())
从这里开始,我将这些数组传递到 Pandas 数据框中,该数据框写入 Excel 文件。我为自己感到非常自豪,因为这是一项乏味的工作,但这是我的第一个有用的程序/脚本!
【问题讨论】:
标签: python web-scraping beautifulsoup