python3+beautifulsoup动态数据获取想要的内容

想获取文学网站一篇文章的章节点击量,网站地址:http://www.jjwxc.net/onebook....

想要获取的动态信息对应的url:http://s8-static.jjwxc.net/ge...

这是我的代码:

from bs4 import BeautifulSoup
import requests
url = "http://s8-static.jjwxc.net/getnovelclick.php?novelid=3601&jsonpcallback=novelclick"
web_data = requests.get(url)
web_data.encoding = "gzip"
soup = BeautifulSoup(web_data.text, "html.parser")
print(soup)

print 出来是这样的:

novelclick({"1":"82686","2":"73363","3":"52320","4":"49171","5":"46838","6":"43687","7":"36339","8":"36067","9":"35917","10":"35570","11":"32912","12":"34357","13":"33653","14":"31370","15":"33803","16":"32647","17":"30681","18":"32163","19":"29455","20":"31213","21":"30199","22":"28536","23":"30041","24":"28862","25":"29439","26":"29469","27":"29378","28":"29678","29":"31427","30":"53411"})

如何去掉前面的novelclick, 使章节和点击量排列好,像这样:
1 82686
2 73363
3 52320
4 49171
.
..

阅读 2.3k
1 个回答

突然不给返回数据了,只能把正则匹配出来的东西写成变量了


import requests
import re
import json

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 \
    (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36"
}

url = "http://s8-static.jjwxc.net/getnovelclick.php?novelid=3601&jsonpcall\
back=novelclick"
web_data = requests.get(url, headers=headers)
web_data.encoding = "gzip"
result = web_data.content.decode()
string = re.findall(r'({.*?})', result)[0]


# string = '{"1":"82686","2":"73363","3":"52320","4":"49171","5":"46838","6":"\
# 43687","7":"36339","8":"36067","9":"35917","10":"35570","11":"32912","12":"34\
# 357","13":"33653","14":"31370","15":"33803","16":"32647","17":"30681","18":"32\
# 163","19":"29455","20":"31213","21":"30199","22":"28536","23":"30041","24":"\
# 28862","25":"29439","26":"29469","27":"29378","28":"29678","29":"31427","\
# 30":"53411"}'

tmp_dict = json.loads(string)
for k, v in tmp_dict.items():
    print(k, v)
# 1 82686
# 2 73363
# 3 52320
# 4 49171
# 5 46838
# 6 43687
# 7 36339
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题