发布于2023-12-26 22:14 阅读(548) 评论(0) 点赞(7) 收藏(5)
所以,我对编码相当陌生,但到目前为止我从未遇到过 IndexOf 问题。我正在尝试搜索一个 html 字符串,如下所示:
“ data-pid=\"6598160343\">\n\n https://minneapolis.craigslist.org/dak/fuo/d/executive-desk-3-piece-set/6598160343.html\" class=\"结果图像库\" data-ids=\"1:00B0B_hkRi5TEyM9Q,1:00z0z_jTtBxHxlxAZ,1:00p0p_2GU15WOHDEB,1:00909_eKQVd7O1pfE\">\n $1500\n \n\n \n \n 收藏此帖子\n \
\n\n" 字符串
n \n 6 月 4 日\n\n\n https://minneapolis.craigslist.org/dak/fuo/d/executive-desk-3-piece-set/6598160343.html\" data-id=\"6598160343\" class=\"result-title hdrlnk\">行政办公桌(3 件套)\n\n\n \n
$1500\n\n\n\n \n 图片\n
地图\n
\n\n \n 隐藏此帖子\n
\n\n \n \n 恢复\n 恢复此帖子\n
\n\n \n
我试图找到特定元素的索引,以便稍后可以获取数据,这是我必须找到的数据两侧位置的索引:
DataBookends bkEnds = new DataBookends
{
PIDFrom = (post.IndexOf(@"pid=\""")) + (@"pid=\""".Length),
URLFrom = (post.IndexOf(@"<a href=\")) + (@"<a href=\".Length),
PriceFrom = (post.IndexOf(@"result-price\"">$")) + (@"result-price\"">$".Length),
DateFrom = (post.IndexOf(@"datetime=\""")) + (@"datetime=\""".Length),
TitleFrom = (post.IndexOf(@"result-title hdrlnk\"">")) + (@"result-title hdrlnk\"">".Length),
LocationFrom = (post.IndexOf(@"result-hood\""> (")) + (@"result-hood\""> (".Length)
};
bkEnds.PIDTo = post.IndexOf(@"\""", bkEnds.PIDFrom);
bkEnds.URLTo = post.IndexOf(@"\", bkEnds.URLFrom);
bkEnds.PriceTo = post.IndexOf(@"</span>", bkEnds.PriceFrom);
bkEnds.DateTo = post.IndexOf(@"\", bkEnds.DateFrom);
bkEnds.TitleTo = post.IndexOf(@"</a>", bkEnds.TitleTo);
bkEnds.LocationTo = post.IndexOf(@"\", bkEnds.LocationFrom);
return bkEnds;
但是,每当我尝试运行它时,它要么找不到任何内容,要么索引值不正确。我知道我错过了一些简单的东西,但我无法弄清楚,我感觉自己像个白痴。这是否与我没有看到的转义字符有关,或者与我的字符串格式有关?请帮助?
编辑:我最初尝试使用 HTML Agility Pack,但我无法理解如何提取所需的数据,因此我认为使用 string.substring() 会更简单。即使在我尝试添加正斜杠之前,我得到的索引值也是完全错误的。我会摆脱那些。
所以我想通了,我最终按照 Jeremy 的建议选择了 HTML Agility Pack。我无法弄清楚我使用 IndexOf 和 Substring 进行搜索的方式到底出了什么问题(例如:它会跳过“”并继续,直到不包含任何这些字符的点),但是我不会再尝试以这种方式进行网络抓取。
对于未来,HTML Agility Pack 是必经之路!
作者:黑洞官方问答小能手
链接:http://www.qianduanheidong.com/blog/article/533297/af1e2d78befceeeb8a4d/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!