【学习交流】python简易爬虫入门

估计下一步要开始学SQL了,哈哈

计算机科学中的一个重要方法。大巧似拙:看似笨拙,但实则灵活、避免重复劳动。

1 个赞

驱动浏览器去爬速度是不是会慢很多

1 个赞

是的,会慢很多,浏览器适合有动态内容加载的网页,或者有加密,有限制访问,有反爬的网站。

增加截图功能。可以保存完整网页,也可以保存指定 HTML 元素的部份截图。适合有加密的网页。

# 指定选择器截图
elem = page.query_selector(".mtb")
elem.screenshot(path="mtb.png")

1 个赞

厲害了 :+1:

这个脚本没有获取子目录,还请您改下,合并当前目录及所有子目录中html到TXT

1 个赞

更新了。用 walk 替换 listdir 可以遍历子目录。

运行了生成空TXT,似乎有点问题。

注意这里,如果要获取当前目录,使用 current_dir

地址表1.txt (16.3 KB)
用這個代碼在抓取這些地址時,中間異常停止。前面一些可以,後面的不行。地址瀏覽器都可以打開。

Python\Python39\lib\site-packages\playwright\_impl\_connection.py", line 54, in inner_send
    result = next(iter(done)).result()
playwright._impl._api_types.TimeoutError: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "https://zidian.911cha.com/bihua_5.html", waiting until "load"
============================================================
Note: use DEBUG=pw:api environment variable to capture Playwright logs.

进程已结束,退出代码为 1

current:  0 https://zidian.911cha.com/bihua_5.html 144441
current:  1 https://zidian.911cha.com/bihua_37.html 30555
current:  2 https://zidian.911cha.com/bihua_38.html 30212
current:  3 https://zidian.911cha.com/bihua_39.html 30776

猜测可能是网络问题,bihua_5 这个网页内容特别多,playwright 默认30秒超时,没能下载完整页面。已更新上面代码,允许设置超时时间。超时就跳过继续下一条,不再报错,等下次再处理。

新的可以了。又
合并文档时出错:

合并当前目录下所有html文件为TXT.py", line 35, in <module>
    content = f2.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xf9 in position 11853: illegal multibyte sequence

html是GBK编码的。

所有 open 方法,配置 encoding='utf-8',再尝试,如果合并还有错误,上传需要合并的文件,我试试。

# 保存网页到文件
with open(filename, "w", encoding='utf-8') as f:
# 准备写入的文件
with open("merged.txt", 'w', encoding='utf-8') as f1:
# 打开网页文件
with open(filename, "r", encoding='utf-8') as f2:
1 个赞

才看见,批评得好

配置 encoding='utf-8',可以了。如果网页为乱码,则会卡住,中止程序。

有乱码的网址是哪个,我试试。

試合併html中止.rar (179.3 KB)
文件及PY,運行後得到的TXT都在裡面了。遇到9-1.txt這個文件就中止。

9-1.html 是从排序看是最后一个文件,遇到就中止是正常的。手工加了9-2.html文件,能正常读取到内容。

1 个赞

不是最後一個,後面還有19,20,兩個文件,沒有合併。

你给的压缩包里有11个 html 文件,merged.txt 里有 22 行,是正常的。你搜索下 19.html 的标题,在 merged.txt 里也是有的。