全球氢能网有氢能源相关企业的列表,怎么全部爬取下来呢?
先看翻页规律:
http://h2.china-nengyuan.com/company/company_0.html
http://h2.china-nengyuan.com/company/company_1.html
http://h2.china-nengyuan.com/company/company_21.html
很简单,就是最后一个数字。
然后看每页的结构和企业信息。
然后在ChatGPT中输入提示词:
你是一个Python编程专家,要写一个爬取网页数据的程序。具体步骤如下:
打开网页http://h2.china-nengyuan.com/company/company_{pagenumber}.html,解析源代码,其中pagenumber的参数是从0到21;
定位页面中所有 class="table_row" 的table元素;
找到里面class="blue"的a元素,提取其titile值,写入excel表格第1列;
找到里面class="fgray2"的第1个td元素,提取其内容,写入excel表格第2列;
找到里面class="fgray2"的第2个td元素,提取其内容,去掉开头的“主营:”字符,写入excel表格第3列;
保存excel表格到F盘的“氢能源企业大全.xlxs”
注意:每一步都要输出信息
运行程序后,爬取到第14页时出错了,把错误信息发送给ChatGPT,回复如下:
根据错误提示,发现程序试图将一个包含非法字符的字符串写入excel表格。openpyxl库中的cell对象只能写入纯文本或数字,不能写入包含特殊字符的字符串。因此,需要对写入的字符串进行处理,去除其中的非法字符。
修改后的代码在写入excel表格前,通过remove_special_chars函数去除了字符串中的非法字符。同时,将去除开头的“主营:”字符的操作也改为了replace('主营', ''),避免了写入非法字符。
错误修正后,顺利爬取所有内容:
氢能源企业名录大全如下: