欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用python爬取翻译网站的简单例子

程序员文章站 2024-02-28 17:32:46
...

这是老师的例子

import sys,re
from pyquery import PyQuery as pq

#reload(sys)
import importlib,sys
importlib.reload(sys)

# 爬取指定URL的内容返回JSON
# corpus_id	->	语料编号
# src_lang	->	源语言
# tgt_lang	->	目标语言
# author	->	发布者
# src_text	->	源文本
# tgt_text	->	目标文本

def get_page_content(page_url):
	d = pq(url=page_url)
	objs = d('#tmTable').children('.row-fluid')
	data = []
	if objs:
		for i in range(0,len(objs)):
			corpus_id = objs.eq(i).attr('data-tmbunch-id')
			src_lang = objs.eq(i)('.span6').eq(0)('sup').text()
			tgt_lang = objs.eq(i)('.span6').eq(1)('sup').text()
			author = objs.eq(i)('.span6').eq(1)('span').eq(0).text()
			src_text = objs.eq(i)('.span6').eq(0)('.tm-p-').text()
			tgt_text = objs.eq(i)('.span6').eq(1)('.tm-p-').text()
			raw = [corpus_id, src_lang, tgt_lang, author, src_text, tgt_text]
			data.append(raw)
		return data
	else:
		return 0

# def generate_url():

print(get_page_content("https://glosbe.com/en/vi/a")[9][4])
print(get_page_content("https://glosbe.com/en/vi/a")[9][5])

这是根据老师的例子自己写的

import sys,re
from pyquery import PyQuery as pq

import importlib,sys
importlib.reload(sys)

# src_text	->	源文本
# tgt_text	->	目标文本

def get_page_content(page_url):
    d = pq(url=page_url)
    #根据id获得div元素,然后获得ul元素,再获得ul下面的li元素列表
    objs = d('#phraseTranslation')('ul')('li')
    #定义一个存放元文本和目标文本的数组[[元文本,目标文本],[元文本,目标文本],[元文本,目标文本],...]
    data = []
    if objs:
        for i in range(0,len(objs)):
            #获得li元素下面的class为examples的div,再获得他下面的class为row-fluid的元素,他的里面有列表
            #第一个列是元语言,第二个是目标语言,
            #通过eq(0)获得元语言的列,获得他的text
            #通过eq(1)获得目标语言的列,获得他的text
            src_text = objs.eq(i)('.examples')('.row-fluid')('.span6').eq(0).text()
            tgt_text = objs.eq(i)('.examples')('.row-fluid')('.span6').eq(1).text()
            raw = [src_text, tgt_text]
            data.append(raw)
        return data
    else:
        return 0
#获得第
print(get_page_content("https://glosbe.com/en/vi/a")[3][0])
print(get_page_content("https://glosbe.com/en/vi/a")[3][1])

 

相关标签: 爬取