我有很多使用Scrapy的经验,但是或者在这个项目中我应该使用colly的一些原因。我正在尝试从网站上抓取数据,但它返回要重新获得访问权限,请确保在重新加载页面之前启用 cookie 和 JavaScript。
我的代码部分如下:
func crawl(search savedSearch) {
c := colly.NewCollector()
extensions.RandomUserAgent(c)
/* for debugging to see what is the result
c.OnHTML("*", func(e *colly.HTMLElement) {
fmt.Println(e.Text)
os.Exit(1)
})*/
c.OnHTML(".result-list__listing", func(e *colly.HTMLElement) {
listingId, _ := strconv.Atoi(e.Attr("data-id"))
if !listingExist(search.id, listingId) {
fmt.Println("Listing found " + strconv.Itoa(listingId))
saveListing(search.id, listingId)
notifyUser(search.user, listingId)
}else{
fmt.Println("item is already crawled")
}
})
我在文档“自动 cookie 和会话处理”中看到,所以可能是 js 的问题,我该如何克服这个问题?首先,尝试一下如何在 colly 中启用 js?