yuvenhol / dataharvest

AGI拓展工具,支持AI搜索&爬虫&数据清洗,开箱即用。tavily、天工、百度百科、百家号、360百科、头条、微信公众号、搜狐百科、腾讯新闻、网易新闻、马蜂窝、小红书
35 stars 4 forks source link

头条文章的清洗报错 #4

Open allie000 opened 1 month ago

allie000 commented 1 month ago
image
Lee0624 commented 1 month ago

我这里试了下是可以的,您可以拉一下dataharvest的最新版本0.2.10再尝试一下

image

allie000 commented 1 month ago

谢谢,我重新试了一下,auto_spider.crawl(url)返回的内容似乎也不是我需要的html。

image

我去浏览器F12搜了一下,抓取的内容似乎是aclawer.js,不知道是不是因为没挂代理?

yuvenhol commented 1 month ago

我去浏览器F12搜了一下,抓取的内容似乎是aclawer.js,不知道是不是因为没挂代理?

用浏览器能访问么,如果可以可以访问,那应该不是代理的问题,你用的哪个版本的包。

allie000 commented 1 month ago

用浏览器能访问么,如果可以可以访问,那应该不是代理的问题,你用的哪个版本的包。

浏览器访问没问题,是0.2.10,今天安装的,设备macos12.7,vscode

image
yuvenhol commented 1 month ago

你试试直接使用ToutiaoSpider爬取试一下呢,你的爬取结果看起来像是走了httpx爬取,再不行你就把ToutiaoSpider 里的crawl方法内容复制出来试一试。

allie000 commented 1 month ago

你试试直接使用ToutiaoSpider爬取试一下呢,你的爬取结果看起来像是走了httpx爬取,再不行你就把ToutiaoSpider 里的crawl方法内容复制出来试一试。

from playwright.sync_api import sync_playwright from playwright_stealth import stealth_async, stealth_sync from dataharvest.schema import Document

url = "https://www.toutiao.com/article/7359215340544344614/" def crawl(url: str) -> Document: with sync_playwright() as playwright: browser = playwright.chromium.launch() page = browser.new_page() stealth_sync(page) page.goto(url) page.wait_for_load_state("networkidle", timeout=10000) html = page.content() document = Document(url=page.url, metadata={}, page_content=html) return document

doc = crawl(url) print(doc)

单独运行了一下crawl,返回的html与之前一样,并不是需要的内容

allie000 commented 1 month ago

当我把stealth_sync(page)注释之后,反而能够正确返回需要的Html了。 我不清楚为什么会出现这个情况。

希望得到您的帮助,非常感谢

allie000 commented 1 month ago

另外我发现,当输入的微信链接的形式类似于 http://mp.weixin.qq.com/s?__biz=MjM5NzYzNzkwMw==&mid=2654550041&idx=5&sn=456ac02b7762a5fcf90a511c7b1d5415&chksm=bd1b62798a6ceb6f8fa318a661f09bdde0c10a9ae18605dfc4aab5893cd4a02aee8a6dd775fc&scene=27#wechat_redirect 时,访问会被拦截:

image

但微信链接形式为 https://mp.weixin.qq.com/s/tfcCbaAU3U7WfxDDl1UhEA 时,可以顺利解析。

希望能提供解析http://mp.weixin.qq.com/s?__biz=xxxxxxxxx链接的方法,感谢作者

yuvenhol commented 1 month ago

希望能提供解析http://mp.weixin.qq.com/s?__biz=xxxxxxxxx链接的方法,感谢作者

实际上是支持的,您提供的链接账号迁移了。我试了下面这条链接是ok的。 https://mp.weixin.qq.com/s?__biz=MzA4Njc0OTc3Mw==&mid=2650879951&idx=1&sn=4370b54d5b06b34aeb063056f1a663d9&chksm=843670edb341f9fbfd64d6ac1c9f2a53160c4f6e8a3bdaaf15167003f95c07667bf1fcc4a0b0&token=139110043&lang=zh_CN#rd"

yuvenhol commented 1 month ago

当我把stealth_sync(page)注释之后,反而能够正确返回需要的Html了。 我不清楚为什么会出现这个情况。

希望得到您的帮助,非常感谢

这段代码是隐藏虚拟浏览器特征的,我没有复现出您的问题,我暂时也不清楚为什么出现这个问题:(。