菏泽网站建设费用低价建站在哪里买
web/
2025/10/4 8:30:44/
文章来源:
菏泽网站建设费用,低价建站在哪里买,福建建设资格管理中心网站,凉山建设机械网站最近#xff0c;有网友反映#xff0c;我的批量查字典工具换到其它的网站就不好用了。对此#xff0c;我想说的是#xff0c;互联网包罗万象#xff0c;网站的各种设置也有所不同#xff0c;并不是所有的在线字典都可以用Python爬取的。事实上#xff0c;很多网站为了防…最近有网友反映我的批量查字典工具换到其它的网站就不好用了。对此我想说的是互联网包罗万象网站的各种设置也有所不同并不是所有的在线字典都可以用Python爬取的。事实上很多网站为了防止被爬取内容早就提高了网站的安全级别不会让用户轻意爬取内容的。
由于这名网友想要的是韩语翻译所以我就不能拿原来的网站来操作了只好去网上查询网速快、又不对爬虫有限制的网站来操作。终于探索出了爬取某字典网站上内容的方法。
一、用BeautifulSoup获取翻译
这是一个字典网站也是一个双语句库网站对于汉语的韩语翻译我们可以通过requests来获取网页源文再用BeautifulSoup进行解析然后用soup.find()查找想要的标签信息和Class提取文本信息然后再写入到xls文件就可以了代码如下
import xlwt
import requests
from bs4 import BeautifulSoupheaders {User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 Edg/114.0.1823.37}def get_word(word):urlfhttps://zh.glosbe.com/zh/ko/{word}resp requests.get(url,headersheaders)soup BeautifulSoup(resp.text, html.parser)# 查找查询结果result soup.find(div, class_inline leading-10)if result:return result.text.split()[0]else:return 未找到翻译def process_txt_file(filename):# 创建工作簿wb xlwt.Workbook()# 创建表单sh wb.add_sheet(sheet 1)with open(filename, r, encodingutf-8) as file:words [i.strip() for i in file.readlines()]for index,word in enumerate(words):sh.write(index,0,word)sh.write(index,1,get_word(word))wb.save(translation_results.xls)
#调用函数并传入txt文件路径
process_txt_file(words.txt)
二、用openpyxl来写入xlsx文件
上面的代码中采用的是xlwt来写入到xls文件我们也可以改用openpyxl同时我们还可以通过soup.h3.string来更快地定位所需要的位置信息。这次我们把查询的内容由韩语改为英文代码优化如下
import requests
from bs4 import BeautifulSoup
import openpyxl
headers {User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 Edg/114.0.1823.37}
def get_word(word):urlfhttps://zh.glosbe.com/zh/en/{word}resp requests.get(url,headersheaders)soup BeautifulSoup(resp.text, html.parser)# 查找查询结果#results soup.find_all(div, class_py-2 flex)results soup.h3.stringif results:return results.strip()else:return 未找到翻译
# if results:
# for result in results:
# print(result.replace(\n\n\n,\n).strip())
# else:
# return 未找到翻译
def process_txt_file(filename):workbook openpyxl.Workbook()sheet workbook.activewith open(filename, r, encodingutf-8) as file:words [i.strip() for i in file.readlines()]for index, word in enumerate(words):translation get_word(word)sheet.cell(rowindex 1, column1).value wordsheet.cell(rowindex 1, column2).value translationworkbook.save(translation_results.xlsx)#调用函数并传入txt文件路径
process_txt_file(words.txt)
三、提取双语例句到xlsx文件
先上效果以下是多个关键词及其相关例句的图示 相关代码如下
import requests
from bs4 import BeautifulSoup
import openpyxl
headers {User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 Edg/114.0.1823.37}
def get_word(word):urlfhttps://zh.glosbe.com/zh/en/{word}resp requests.get(url,headersheaders)soup BeautifulSoup(resp.text, html.parser)# 查找查询结果results soup.find_all(div, class_py-2 flex)lst[]if results:for result in results:text result.text.replace(\n\n\n,\n).strip()lst.append(text.split(\n))return lstelse:return 未找到翻译def process_txt_file(filename):workbook openpyxl.Workbook()sheet workbook.activewith open(filename, r, encodingutf-8) as file:words [i.strip() for i in file.readlines()]for word in words:sheet.append([word])paras get_word(word)for para in paras:sheet.append(para)workbook.save(translation.xlsx)#调用函数并传入txt文件路径
process_txt_file(words.txt)
四、学后的反思
1. 爬虫不是万能的不能完全依靠爬虫去获取一切网上的信息毕竟有很多网站的案例防御机制是针对爬虫的
2. 利用BeautifulSoup是很不错的解析、提取网页标签的方法如果无法完全获取网页信息就要考虑带上headers,cookies等信息。
3. 写入excel文件有多种 方法列表写入Excel可以考虑sheet.append()方法简单实用。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86689.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!