这是我在这个网站上的第一个问题,因为我已经尝试了很多方法来获得我想要的但我没有成功.. 我尝试从类似于CraigList的法语网站中提取两种类型的数据。 我的需求很简单,我设法得到这些信息,但我的摘录中仍然有标签和其他标志。即使使用.encode(utf-8),我也有编码问题。
# -*- coding: utf-8 -*-
from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
import csv
csvfile=open("test.csv", 'w+')
html=urlopen("http://www.leboncoin.fr/annonces/offres/ile_de_france/")
bsObj=BeautifulSoup(html)
article= bsObj.findAll("h2",{"class":"title"})
prix=bsObj.findAll("div",{"class":"price"})
for art in article:
art=art.text.encode('utf-8')
print(article)
for prix1 in prix:
prix1=prix1.text.encode('utf-8')
print(prix1)
#Pour merger 2 listes (en deux colonnes, pas a la suite)
table_2=list(zip(article,prix))
try:
writer=csv.writer(csvfile)
writer.writerow(('Article', 'Prix'))
for i in table_2:
writer.writerow([i])
finally:
csvfile.close()
运行此代码时:
文章中的艺术: 技术= art.text.encode( 'UTF-8')
我的问题是:
我想我没有按预期使用该功能但是尽管我进行了测试但我没有得到结果..
提前感谢您的见解。
干杯
乔
答案 0 :(得分:0)
你可能已经意识到自己的错误。您正在压缩并输出# -*- coding: utf-8 -*-
from urllib2 import urlopen
from bs4 import BeautifulSoup
import re
import csv
csvfile=open("test.csv", 'w+')
html=urlopen("http://www.leboncoin.fr/annonces/offres/ile_de_france/")
bsObj=BeautifulSoup(html, "html.parser")
article= bsObj.findAll("h2",{"class":"title"})
prix=bsObj.findAll("div",{"class":"price"})
articles = []
for art in article:
articles.append(art.text.encode('utf-8').strip())
print(art)
prices = []
for prix1 in prix:
prices.append(prix1.text.encode('utf-8').strip())
#Pour merger 2 listes (en deux colonnes, pas a la suite)
table_2=list(zip(articles,prices))
try:
writer=csv.writer(csvfile)
writer.writerow(('Article', 'Prix'))
for i in table_2:
writer.writerow([i])
finally:
csvfile.close()
而不是元素文本。我更正了以下代码:
epicDict = collections.defaultdict(set)
for word in uniqueWordList:
for trigram in [word[x:x+3] for x in range(len(word)-2)]:
epicDict[trigram].add(word)
下次尝试不用法语发表评论;)