def get_message(shangpin_list):#数据筛选 message_dict = [] for message in shangpin_list: name = message.xpath('div[@class="gl-i-wrap"]/div[@class="p-name p-name-type-2"]/a/em/text()') price = message.xpath('div[@class="gl-i-wrap"]/div[@class="p-price"]/strong/i/text()') if price == []: price = ["发布中"] shopname = message.xpath('div[@class="gl-i-wrap"]/div[@class="p-shop"]/span/a/@title') href = message.xpath('div[@class="gl-i-wrap"]/div[@class="p-name p-name-type-2"]/a/@href')
时间: 2024-04-26 18:25:25 浏览: 28
这段代码是一个函数,用于对商品列表进行数据筛选。传入参数 shangpin_list 是一个包含多个商品信息的列表,每个商品信息都是由 HTML 节点构成的。函数会遍历 shangpin_list 中的每个商品信息,从中筛选出商品名称、价格、店铺名称和商品链接,并将这些信息保存到一个字典中,最终将多个字典组成的列表返回。其中,使用了 xpath 方法来提取 HTML 节点中的文本和属性信息。如果商品价格为空,则将其设置为“发布中”。
相关问题
public void save() { String forwardurl = request.getParameter("forwardurl"); String errorurl=request.getParameter("errorurl"); String name = request.getParameter("name"); String spno = request.getParameter("spno"); String jiage = request.getParameter("jiage"); String dazhe = request.getParameter("dazhe"); String tuijian = request.getParameter("tuijian"); String zuixin = request.getParameter("zuixin"); String hot=request.getParameter("hot"); String sptype = request.getParameter("sptype"); String sptypeid = request.getParameter("sptypeid"); String tupian = request.getParameter("tupian"); String jieshao = request.getParameter("jieshao"); String hyjia = request.getParameter("hyjia"); String pubren = request.getParameter("pubren"); SimpleDateFormat sdfshangpin = new SimpleDateFormat("yyyy-MM-dd"); Shangpin shangpin = new Shangpin(); shangpin.setName(name == null ? "" : name); shangpin.setSpno(spno == null ? "" : spno); shangpin.setJiage(jiage == null ? (double) 0 : new Double(jiage)); shangpin.setDazhe(dazhe == null ? 0 : new Integer(dazhe)); shangpin.setTuijian(tuijian == null ? 0 : new Integer(tuijian)); shangpin.setZuixin(zuixin == null ? 0 :new Integer( zuixin)); shangpin.setHot(hot==null?0:new Integer(hot)); shangpin.setSptype(sptype == null ? "" : sptype); shangpin.setSptypeid(sptypeid == null ? 0 : new Integer(sptypeid)); shangpin.setTupian(tupian == null ? "" : tupian); shangpin.setJieshao(jieshao == null ? "" : jieshao); shangpin.setHyjia(hyjia == null ? 0 : new Integer(hyjia)); shangpin.setPubtime(new Date()); shangpin.setPubren(pubren == null ? "" : pubren);每一行代码的解释
这段代码是一个Java方法,包含了多个变量和参数。以下是每一行代码的解释:
1. String forwardurl = request.getParameter("forwardurl");
定义一个名为forwardurl的字符串变量,通过request对象获取名为"forwardurl"的参数值。
2. String errorurl=request.getParameter("errorurl");
定义一个名为errorurl的字符串变量,通过request对象获取名为"errorurl"的参数值。
3. String name = request.getParameter("name");
定义一个名为name的字符串变量,通过request对象获取名为"name"的参数值。
4. String spno = request.getParameter("spno");
定义一个名为spno的字符串变量,通过request对象获取名为"spno"的参数值。
5. String jiage = request.getParameter("jiage");
定义一个名为jiage的字符串变量,通过request对象获取名为"jiage"的参数值。
6. String dazhe = request.getParameter("dazhe");
定义一个名为dazhe的字符串变量,通过request对象获取名为"dazhe"的参数值。
7. String tuijian = request.getParameter("tuijian");
定义一个名为tuijian的字符串变量,通过request对象获取名为"tuijian"的参数值。
8. String zuixin = request.getParameter("zuixin");
定义一个名为zuixin的字符串变量,通过request对象获取名为"zuixin"的参数值。
9. String hot=request.getParameter("hot");
定义一个名为hot的字符串变量,通过request对象获取名为"hot"的参数值。
10. String sptype = request.getParameter("sptype");
定义一个名为sptype的字符串变量,通过request对象获取名为"sptype"的参数值。
11. String sptypeid = request.getParameter("sptypeid");
定义一个名为sptypeid的字符串变量,通过request对象获取名为"sptypeid"的参数值。
12. String tupian = request.getParameter("tupian");
定义一个名为tupian的字符串变量,通过request对象获取名为"tupian"的参数值。
13. String jieshao = request.getParameter("jieshao");
定义一个名为jieshao的字符串变量,通过request对象获取名为"jieshao"的参数值。
14. String hyjia = request.getParameter("hyjia");
定义一个名为hyjia的字符串变量,通过request对象获取名为"hyjia"的参数值。
15. String pubren = request.getParameter("pubren");
定义一个名为pubren的字符串变量,通过request对象获取名为"pubren"的参数值。
16. SimpleDateFormat sdfshangpin = new SimpleDateFormat("yyyy-MM-dd");
定义一个SimpleDateFormat对象sdfshangpin,用于格式化日期。
17. Shangpin shangpin = new Shangpin();
创建一个名为shangpin的Shangpin对象,用于存储商品信息。
18. shangpin.setName(name == null ? "" : name);
设置shangpin对象的name属性,如果name为null,则设置为空字符串。
19. shangpin.setSpno(spno == null ? "" : spno);
设置shangpin对象的spno属性,如果spno为null,则设置为空字符串。
20. shangpin.setJiage(jiage == null ? (double) 0 : new Double(jiage));
设置shangpin对象的jiage属性,如果jiage为null,则设置为0。
21. shangpin.setDazhe(dazhe == null ? 0 : new Integer(dazhe));
设置shangpin对象的dazhe属性,如果dazhe为null,则设置为0。
22. shangpin.setTuijian(tuijian == null ? 0 : new Integer(tuijian));
设置shangpin对象的tuijian属性,如果tuijian为null,则设置为0。
23. shangpin.setZuixin(zuixin == null ? 0 :new Integer( zuixin));
设置shangpin对象的zuixin属性,如果zuixin为null,则设置为0。
24. shangpin.setHot(hot==null?0:new Integer(hot));
设置shangpin对象的hot属性,如果hot为null,则设置为0。
25. shangpin.setSptype(sptype == null ? "" : sptype);
设置shangpin对象的sptype属性,如果sptype为null,则设置为空字符串。
26. shangpin.setSptypeid(sptypeid == null ? 0 : new Integer(sptypeid));
设置shangpin对象的sptypeid属性,如果sptypeid为null,则设置为0。
27. shangpin.setTupian(tupian == null ? "" : tupian);
设置shangpin对象的tupian属性,如果tupian为null,则设置为空字符串。
28. shangpin.setJieshao(jieshao == null ? "" : jieshao);
设置shangpin对象的jieshao属性,如果jieshao为null,则设置为空字符串。
29. shangpin.setHyjia(hyjia == null ? 0 : new Integer(hyjia));
设置shangpin对象的hyjia属性,如果hyjia为null,则设置为0。
30. shangpin.setPubtime(new Date());
设置shangpin对象的pubtime属性,值为当前时间。
31. shangpin.setPubren(pubren == null ? "" : pubren);
设置shangpin对象的pubren属性,如果pubren为null,则设置为空字符串。
#include <stdio.h> #include <string.h> void caidan(); int main() { struct shangpin { char name[10]; int num; int price; }a[50]; // struct shangpin a[50]; strcpy(a[0].name,"泡芙"); a[0].num=20; a[0].price=5; strcpy(a[1].name,"芒果干"); a[1].num=10; a[1].price=7; caidan(); return 0; } void caidan() { printf("商品名称:%s\n商品数量:%d\n商品价格:%d\n",a[1].name,a[1].num,a[1].pric); }
在你的代码中,出现了一些问题。首先,你定义了一个结构体数组 `a[50]` 来存储商品信息,但是在 `caidan()` 函数中无法访问到 `a` 数组,因为它是在 `main()` 函数中定义的局部变量。另外,你在 `caidan()` 函数中打印商品信息时,出现了一个拼写错误,应该是 `a[1].price` 而不是 `a[1].pric`。
为了解决这些问题,你可以将结构体数组 `a[50]` 声明为全局变量,这样它就可以在整个程序中被访问到。另外,还需要将 `caidan()` 函数的声明放在 `main()` 函数之前,以便在 `main()` 函数中调用它。
下面是修正后的代码:
```c
#include <stdio.h>
#include <string.h>
struct shangpin
{
char name[10];
int num;
int price;
} a[50];
void caidan();
int main()
{
strcpy(a[0].name, "泡芙");
a[0].num = 20;
a[0].price = 5;
strcpy(a[1].name, "芒果干");
a[1].num = 10;
a[1].price = 7;
caidan();
return 0;
}
void caidan()
{
printf("商品名称:%s\n商品数量:%d\n商品价格:%d\n", a[1].name, a[1].num, a[1].price);
}
```
现在,当你运行程序时,它将正确地打印出 `a[1]` 的商品信息。
希望这能帮助到你!如果你有任何其他问题,请随时提问。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)