鱼C论坛

 找回密码
 立即注册
查看: 1353|回复: 2

[已解决]输出字典是空的

[复制链接]
发表于 2020-6-28 11:13:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import requests,re
  2. #url ='https://maoyan.com/board/4'
  3. def get_one_page(url):
  4.         headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
  5.         'cookie' : '__mta=154442631.1593241361941.1593241556380.1593241598233.10; uuid_n_v=v1; uuid=2C6E1440B84411EAB7FDDF490BC946C07143E4D320224FAD8732A16C4F44A135; _csrf=9c3390568dd99073365b26b5ffcd129611ecfabbd07045a23cd8e278637f52a4; __guid=17099173.2087594309519851500.1593241358937.2642; Hm_lvt_703e94591e87be68cc8da0da7cbd0be2=1593241360; _lxsdk_cuid=172f495d53ac8-023df9ee10b5bf-376b4502-1fa400-172f495d53a6d; _lxsdk=2C6E1440B84411EAB7FDDF490BC946C07143E4D320224FAD8732A16C4F44A135; mojo-uuid=3c61b53790f9fbab0971a53489505d9b; mojo-session-id={"id":"2a22304ae494ac0049ab4e1180ef1cf0","time":1593241361961}; __mta=49531289.1593241413123.1593241413123.1593241413123.1; monitor_count=11; mojo-trace-id=16; Hm_lpvt_703e94591e87be68cc8da0da7cbd0be2=1593241598; _lxsdk_s=172f495d53c-f36-b5-fdd%7C%7C23'
  6.         }
  7.         response = requests.get(url,headers=headers)
  8.         if response.status_code == 200:
  9.                 return response.text

  10. '''def parse_one_page(html):
  11.         pattern = re.compile('<dd>.*?>(.*?)</i>.*?data-src="(.*?)".*?name.*?a.*?>(.*?)</a>.*?star.*?>(.*?)</p>.*?releasetime.*?>(.*?)</p>.*?integer.*?>(.*?)</i>.*?fraction.*?>(.*?)</i>.*?</dd>',re.S)
  12.        
  13.         items = re.findall(pattern,html)
  14.         for item in items:
  15.                 yield{
  16.                         'indes':item[0],
  17.                         'image':item[1],
  18.                         'title':item[2],
  19.                         'actor':item[3].strip()[3:] if len(item[3]) > 3 else '',
  20.                         'time' :item[4].strip()[5:] if len(item[4]) > 5 else '',
  21.                         'score':item[5].strip() +item[6].strip()
  22.                 }
  23. '''

  24. def main():
  25.         url='https://maoyan.com/board/4'
  26.         html = get_one_page(url)
  27.         #print(html)

  28.         pattern = re.compile('<dd>.*?>(.*?)</i>.*?data-src="(.*?)".*?name.*?a.*?>(.*?)</a>.*?star.*?>(.*?)</p>.*?releasetime.*?>(.*?)</p>.*?integer.*?>(.*?)</i>.*?fraction.*?>(.*?)</i>.*?</dd>',re.S)
  29.        
  30.         items = re.findall(pattern,html)
  31.         for item in items:
  32.                 yield{
  33.                         'indes':item[0],
  34.                         'image':item[1],
  35.                         'title':item[2].strip(),
  36.                         'actor':item[3].strip(),
  37.                         'time' :item[4].strip(),
  38.                         'score':item[5]+item[6],
  39.                 }
  40.         a = yield       
  41.         print(a)
  42. main()
复制代码

上面这个代码输出运行没有输出,或者我怎么输出yield这个字典呢。但是我如果在def main()里面直接输出items或者for item  in items: print item 都是有输出的。求大佬帮助啊

输出字典是空白的

输出字典是空白的
最佳答案
2020-6-28 11:27:38
函数yiled 之后是一个generator, 你可以for循环遍历它,然后在处理;
for item in main():
    print(item)
或者 result = list(main() ),得到所有字典的列表

遍历items有输出

遍历items有输出

输出items有输出

输出items有输出
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-28 11:27:38 | 显示全部楼层    本楼为最佳答案   
函数yiled 之后是一个generator, 你可以for循环遍历它,然后在处理;
for item in main():
    print(item)
或者 result = list(main() ),得到所有字典的列表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-28 12:08:10 | 显示全部楼层
yifenyu 发表于 2020-6-28 11:27
函数yiled 之后是一个generator, 你可以for循环遍历它,然后在处理;
for item in main():
    print(it ...

十分感谢,确实是这样的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 16:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表