我对Scrapy有很多经验,但由于某些原因,我应该在这个项目中使用。我试图从网站上抓取数据,但它返回要重新获得访问权限,请确保在重新加载页面之前启用了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?
Colly是HTML页面的最佳选择。如果您需要抓取JS驱动的页面,则需要使用不同的策略。浏览器有一个在JS上工作的相互协议,并且它们有用于不同语言的不同库,包括Go。