尝试爬取国家统计局数据
import requestsimport bs4
import re
def open_url(url):
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
res=requests.get(url,headers=headers)
return res
def get_mes(res):
soup=bs4.BeautifulSoup(res.text,'html.parser')
targets=soup.find_all('tbody')
print(targets)
# for each in targets:
# print(each.text)
def main():
url="http://data.stats.gov.cn/easyquery.htm?cn=E0101"
res=open_url(url)
get_mes(res)
if __name__=='__main__':
main()
刚开始就遇到问题,我在爬取tbody里内容的时候,为什么爬取不到我需要的那个tbody?明明有两个tbody,为什么只爬取到后面那个,前面那个却没有呢?求指教 是反爬机制嘛?我把整个网站下载下来也没有找到数据部分的内容 求指点 页面html部分是event触发的(得动态加载),所以直接get是只能拿到一个:
告诉我你真正要爬的数据内容吧,好让我们帮你分析如何处理动态加载。
suchocolate 发表于 2020-7-5 14:18
页面html部分是event触发的(得动态加载),所以直接get是只能拿到一个:
你这个审查元素很清晰啊
跟 Chrome 有的一拼 suchocolate 发表于 2020-7-5 14:18
页面html部分是event触发的(得动态加载),所以直接get是只能拿到一个:
就是像爬取网易云音乐评论那样放慢加载速度嘛?不太懂,老哥有推荐的相关学习视频嘛? suchocolate 发表于 2020-7-5 14:18
页面html部分是event触发的(得动态加载),所以直接get是只能拿到一个:
因为以后写论文可能要用到这些数据 所以现在就想提前爬一下试试看 suchocolate 发表于 2020-7-5 14:18
页面html部分是event触发的(得动态加载),所以直接get是只能拿到一个:
就比如我发的代码里的那个网址的数据,应该如何爬取呢?谢谢 看过了数据获取过程,是ajax获取,这个得细研究研究,恐怕没时间帮你了。不过可以说一下我看到的:
首先加载网页时,会得到一个json格式的数据,只是储存了默认当前页面的数据,具体数据与对应counter名称不得而知:
其次是每点击一个分支,就会触发一次AJAX查询,从而得到那个分支的数据:
另外注意每次查询的参数是不同的,应该也就是这个决定了查询的对象:
另外说ajax这个查法感觉比较麻烦,不如直接点那个下载按钮下载数据直接。
页:
[1]