客户要求用Haskell抓取京东洗衣机商品价格,红包到手
2023-12-13 16:00:01
这是个比较不错的客户,平时经常扔点单子过来,今天过来找我说家里想换台洗衣机,让我帮看看整个价格表给他,让他去换台洗衣机,价格在2000-5000元不等,牌子在小天鹅,美的,海尔这几个牌子之间选。本来不打算收费的,但是最后还是发了个红包。
首先要确定需求和目标,这2个都有,那么就把最近半个月内的数据都整理出来,直接上代码;
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Client
import Network.HTTP.Client.TLS
import Network.HTTP.Types.Status (statusCode)
import qualified Data.ByteString.Lazy.Char8 as L8
-- 免费领取爬虫ip: http://www.jshk.com.cn/mb/reg.asp?kefu=xjy&csdn
main :: IO ()
main = do
manager <- newManager tlsManagerSettings
request <- parseRequest "https://search.jd.com/search?keyword=%E6%B4%97%E8%A1%A3%E6%9C%BA%E5%85%A8%E8%87%AA%E5%8A%A8&suggest=2.def.0.SAK7%7CMIXTAG_SAK7R%2CSAK7_M_AM_L5397%2CSAK7_M_GUD_R%2CSAK7_S_AM_R%2CSAK7_D_HSP_R%2CSAK7_SC_PD_R%2CSAK7_SM_PB_R%2CSAK7_SM_PRK_R%2CSAK7_SM_PRC_R%2CSAK7_SM_PRR_R%2CSAK7_SS_PM_LC%7C&wq=%E6%B4%97%E8%A1%A3%E6%9C%BA%E5%85%A8%E8%87%AA%E5%8A%A8&pvid=1464716f49bb473f8e44a27e906788f6&ev=exbrand_%E7%BE%8E%E7%9A%84%EF%BC%88Midea%EF%BC%89%7C%7C%E6%B5%B7%E5%B0%94%EF%BC%88Haier%EF%BC%89%7C%7C%E5%B0%8F%E5%A4%A9%E9%B9%85%EF%BC%88LittleSwan%EF%BC%89%5E#J_searchWrap"
-- 设置模拟浏览器头
let headers = [("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3")]
let requestWithHeaders = request { requestHeaders = headers }
-- 设置代理
let requestWithProxy = requestWithHeaders { proxy = Just $ Proxy "http" "your-proxy-host" your-proxy-port }
response <- httpLbs requestWithProxy manager
if statusCode (responseStatus response) == 200
then L8.putStrLn $ responseBody response
else putStrLn "Error: Unable to fetch data."
请将 ??your-proxy-host?
?? 和 ??your-proxy-port?
?? 替换为实际的代理主机和端口。在这个示例中,我们添加了一个名为 ??headers?
?? 的列表,其中包含了模拟浏览器的用户代理头。然后,我们将这个列表赋值给请求的 ??requestHeaders?
? 字段,以便在发送请求时包含这些头部信息。
剩下就是数据整理了,为了偷懒,把数据中重要的品牌,价格,时间整理放到一个html页面中,每半小时更新一次,这页面就更简单了,直接gpt使用vue.js写就行了。
欢迎交流沟通,欢迎私信或留言,不要来抬杠。初入江湖,多多包涵。
文章来源:https://blog.csdn.net/super_ip_/article/details/134971238
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!