如何将Python与Xamarin Android应用程序集成以进行Web抓取

1mrurvl1  于 2023-09-28  发布在  Python
关注(0)|答案(2)|浏览(123)

我和一个朋友有一个想法,建立某种网络抓取软件,最终我们解决了一个移动的应用程序(Android)。其主要思想是:我们为用户提供一个音乐节列表,用户选择一个,当他这样做时,将显示该音乐节的当前确认艺术家列表(我们希望它显示最新列表)。该列表通过python脚本检索(注意,目标不是部署或利润(至少现在),因此这是非常概括的解释)。
我的问题是,如何将python脚本与移动的应用程序集成?目前我知道你可以用C#调用它们,但我不确定这是否能在移动的环境中工作。另外,我看到有人说应该在Web服务器上托管脚本,然后通过API调用执行它们,但这个人没有扩展,我不知道如何做到这一点。
任何关于这一问题的见解或有用的参考资料都将是有益的。谢谢你,谢谢

jk9hmnmh

jk9hmnmh1#

你可以在C#中使用HttpClient和HtmlAgilityPack来实现;您需要:

using System.Net.Http;
using HtmlAgilityPack;

创建如下方法:

public static HtmlNode GetNodeById(HttpClient client, string url, string divId)
{
    string pageHtml = "";
    using (HttpResponseMessage response = client.GetAsync(url).Result)
    {
        using (HttpContent content = response.Content)
        {
            pageHtml =  content.ReadAsStringAsync().Result;
        }
    }

    var doc = new HtmlDocument();
    doc.LoadHtml(pageHtml);
    HtmlNode node = doc.GetElementbyId(divId);
    return node;
}

然后像这样调用(其中“musiciansDiv”是包含应用所需信息的div):

static HttpClient client = new HttpClient();
var musicians = GetNodeById(client, "http://gigs.example.com", "musiciansDiv");
fhg3lkii

fhg3lkii2#

如果你是为自己制作这个应用程序,不想过多参与,你会在this article中找到一些有用的信息。
我们的想法是编写一个小型的C#服务器,它将接收和发送数据到您的移动的应用程序,没有任何问题。然后,你可以简单地让Python代码将数据写入文件,C#服务器只是读取这些数据并将其发送到移动的应用程序,就是这样!
当然,这不是一种专业的方法,但如果您对简单性感兴趣,那么这个选项适合您。还有一个很大的好处是,C#控制台应用程序(在您的情况下,它将是服务器)在编译时也保存为.exe文件。这意味着您可以简单地转到\bin\Debug\netcoreapp*.*,将所有文件复制到Python项目中,然后通过Python运行.exe文件。

相关问题