我非常感谢您对以下问题的最佳方法的看法.我正在使用汽车分类列表示例,其性质类似于给出一个想法.
问题:从给定文本中提取数据元组.
以下是数据的一些特征.
文本中的词汇(单词)仅限于特定领域.让我们假设最多100-200个单词.
需要解析的文本是标题,如下面显示的汽车广告数据.所以每条记录对应一个元组(行).
在某些情况下,某些属性可能会丢失.因此,例如,在原始数据行#5中,缺少年份.
有些词汇(bigrams).喜欢"低里程".
可用的历史数据= 10,000条记录
传入的新数据量=每周1000-1500条记录
预期输出应采用(年,制,模型,特征)的形式.所以输出应该是这样的
1 - >(2009,Ford,Fusion,SE)
2 - >(1997,Ford,Taurus,Wagon)
3 - >(2000,Mitsubishi,Mirage,DE)
4 - >(2007,Ford,Expedition,EL Limited)
5 - >(,本田雅阁,EX)
....
....
原始标题数据:
1 - > 2009福特Fusion SE - 7000美元
2 - > 1997福特金牛座旅行车 - 800美元(圣东方)
3 - > '00三菱海市蜃楼DE - 2499美元(saratoga)图片
4 - > 2007福特Expedition EL限量版 - $ 7800(x)
5 - > Honda Accord ex low miles - $ 2800(dublin/pleasanton/livermore)pic
6 - > 2004 HONDA ODASSEY LX 68K MILES - $ 10800(danville/san …
目标:编写Python 2.7代码以从字符串中提取IPv4地址.
字符串内容示例:
以下是IP地址:192.168.1.1,8.8.8.8,101.099.098.000.这些也可以显示为192.168.1 [.] 1或192.168.1(.)1或192.168.1 [dot] 1或192.168.1(dot)1或192 .168 .1 .1或192. 168. 1这些审查方法适用于任何一个点(例如:192 [.] 168 [.] 1 [.] 1).
正如你可以从上面看到的,我在努力寻找一种方法,通过可能包含在"审查"的多种形式描绘的IP地址一个txt文件解析(防止超链接).
我认为正则表达式是要走的路.也许会说些什么; 四个整数0-255或000-255的任何分组被任何东西在"分隔符列表",其将包括周期,支架,括号,或任何其他上述实施例的分离.这样,可以根据需要更新"分隔符列表".
不确定这是否是正确的方式,甚至可能,所以,非常感谢任何帮助.
更新: 感谢下面的递归回答,我现在有以下代码适用于上面的示例.它会...
警告:下面的代码不考虑不正确/不有效的IP如192.168.0.256或192.168.1.2.3目前,它将丢弃后从上述6和3.如果它的第一个字节是无效的(例如:256.10.10.10),它会掉落领先2(导致56.10.10.10).
import re
def extractIPs(fileContent):
pattern = r"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)([ (\[]?(\.|dot)[ )\]]?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3})"
ips = [each[0] for each in re.findall(pattern, fileContent)]
for item in ips:
location = ips.index(item)
ip = re.sub("[ ()\[\]]", "", item)
ip = re.sub("dot", ".", ip)
ips.remove(item)
ips.insert(location, ip)
return ips
myFile = open('***INSERT FILE PATH HERE***')
fileContent = …Run Code Online (Sandbox Code Playgroud) 嗨,这是我的页面看起来像
<div class="Bango 1 Beamer Beamer-1"> Beamer </div>
<div class ="menu1"> menu1 </div>
<div class ="menu2"> menu2 </div>
<div class ="menu3"> menu3 </div>
<div class ="menu4"> menu4 </div>
<div class="Bango 1 Beamer Beamer-2"> Beamer2 </div>
<div class ="menu1"> menu21 </div>
<div class ="menu2"> menu22 </div>
<div class ="menu3"> menu23 </div>
<div class ="menu4"> menu24 </div>
<div class="Bango 1 Beamer Beamer-3"> Beamer3 </div>
<div class ="menu1"> menu31 </div>
<div class ="menu2"> menu32 </div>
<div class ="menu3"> menu33 </div>
<div class ="menu4"> …Run Code Online (Sandbox Code Playgroud) 我正在使用scrapely从一些HTML中提取数据,但是我在提取项目列表时遇到了困难.
该scrapely GitHub的项目仅描述一个简单的例子:
from scrapely import Scraper
s = Scraper()
s.train(url, data)
s.scrape(another_url)
Run Code Online (Sandbox Code Playgroud)
例如,如果您尝试按照描述提取数据,这很好:
用法(API)
Scrapely有一个强大的API,包括可以在外部编辑的模板格式,您可以使用它来构建非常强大的scraper.
以下部分是最简单的可能用法的快速示例,您可以在Python shell中运行.
但是,如果您发现了类似的内容,我不确定如何提取数据
Ingredientes
- 50 gr de hojas de albahaca
- 4 cucharadas (60 ml) de piñones
- 2 - 4 dientes de ajo
- 120 ml (1/2 vaso) de aceite de oliva virgen extra
- 115 gr de queso parmesano recién rallado
- 25 gr de queso pecorino recién rallado ( o queso de leche de oveja curado)
Run Code Online (Sandbox Code Playgroud)
我知道我不能通过使用xpath或css选择器来提取它,但我更感兴趣的是使用可以为类似页面提取数据的解析器.
我有一个 NC 文件(时间、纬度、经度)从这里下载,我正在尝试提取多个站点的时间序列(纬度/经度点从这里下载)。所以我尝试用这种方式读取坐标并从 NC 文件中提取最接近的值:
import pandas as pd
import xarray as xr
nc_file = r"C:\Users\lab\Desktop\harvey\example.nc"
NC = xr.open_dataset(nc_file)
csv = r"C:\Users\lab\Desktop\harvey\stations.csv"
df = pd.read_csv(csv,delimiter=',')
Newdf = pd.DataFrame([])
# grid point lists
lat = df["Lat"]
lon = df["Lon"]
point_list = zip(lat,lon)
for i, j in point_list:
dsloc = NC.sel(lat=i,lon=j,method='nearest')
DT=dsloc.to_dataframe()
Newdf=Newdf.append(DT,sort=True)
Run Code Online (Sandbox Code Playgroud)
该代码工作正常并返回:
EVP lat lon
time
2019-01-01 19:00:00 0.0546 40.063 -88.313
2019-01-01 23:00:00 0.0049 40.063 -88.313
2019-01-01 19:00:00 0.0052 41.938 -93.688
2019-01-01 23:00:00 0.0029 41.938 -93.688 …Run Code Online (Sandbox Code Playgroud) 我正在尝试从下面提到的网站中提取价格。我正在使用AngleSharp进行提取。在网站上,价格列在下面(例如):
<span class="c-price">650.00 </span>
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码进行提取。
using AngleSharp.Parser.Html;
using System.Net;
using System.Net.Http
//Make the request
var uri = "https://meadjohnson.world.tmall.com/search.htm?search=y&orderType=defaultSort&scene=taobao_shop";
var cancellationToken = new CancellationTokenSource();
var httpClient = new HttpClient();
var request = await httpClient.GetAsync(uri);
cancellationToken.Token.ThrowIfCancellationRequested();
//Get the response stream
var response = await request.Content.ReadAsStreamAsync();
cancellationToken.Token.ThrowIfCancellationRequested();
//Parse the stream
var parser = new HtmlParser();
var document = parser.Parse(response);
//Do something with LINQ
var pricesListItemsLinq = document.All
.Where(m => m.LocalName == "span" && m.ClassList.Equals("c-price"));
Console.WriteLine(pricesListItemsLinq.Count());
Run Code Online (Sandbox Code Playgroud)
但是,我没有任何物品,但是它们在网站上。我究竟做错了什么?如果不推荐使用AngleSharp,该怎么用?我应该使用什么代码?
有几个软件包可用于将折线图数字化,例如GetData Graph Digitizer。
但是,对于热图的数字化,我找不到任何软件包或程序。
我想使用 Python 数字化热图(来自 png 或 jpg 格式的图像)。怎么做?
我需要从头开始编写整个代码吗?
或者有没有可用的包?
从下面的链接中,我试图提取经度和纬度。我发现了类似的帖子,但没有找到具有相同格式的帖子。我是regex /文本操作的新手,并且希望获得有关如何使用Python进行此操作的任何指导。我想从此示例获得的输出是
latitude = 40.744221
longitude = -73.982854
Run Code Online (Sandbox Code Playgroud)
提前谢谢了。
是否有一种方法可以从 Google 文档导出评论,以便评论显示在 Google 表格文档的一列中,而 Google 文档中突出显示的文本显示在旁边的列中?
据我了解,可以通过 API 访问文件注释:
https://developers.google.com/drive/v3/reference/comments#methods
但是我们可以用它来提取文档的注释和突出显示的文本吗?任何帮助,将不胜感激。
google-docs google-sheets data-extraction google-apps-script google-drive-api
我想下载一个压缩在 open-plaques-all-2017-06-19.rar 中的文件,但是在 R 中没有实现它。请看我下面的代码
temp <- tempfile()
download.file("https://github.com/tuyenhavan/Statistics/blob/master/open-plaques-all-2017-06-19.rar", temp)
df<- fread(unzip(temp, files = "open-plaques-all-2017-06-19.csv"))
head(df)
Run Code Online (Sandbox Code Playgroud) data-extraction ×10
python ×5
regex ×3
extraction ×2
anglesharp ×1
c# ×1
extract ×1
google-docs ×1
heatmap ×1
imacros ×1
import ×1
ipv4 ×1
linq ×1
netcdf ×1
nlp ×1
pandas ×1
python-2.7 ×1
r ×1
scrapely ×1
web-scraping ×1
zip ×1