1、找出微博用户唯一标示:oid点开右边的network选项,在里面选中xhr,并滑动页面的滚动条加载出新页面,此时会出现一个表单,点击该表单。
2、from ur盟敢势袂llib.parse import urlencodeimport requestsfrom pyquery import PyQuery as pqimport timefrom pymongo import MongoClientbase_url = 'https://m.weibo.cn/api/container/getIndex?'headers = { 'Host': 'm.weibo.cn', 'Referer': 'https://m.weibo.cn/u/2830678474', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest',}def get_page(page): #得到页面的请求,params是我们要根据网页填的,就是下图中的Query String里的参数 params = { 'containerid': '100103type=1&q=杀医', 'page': page,#page是就是当前处于第几页,是我们要实现翻页必须修改的内容。 'type':'all', 'queryVal':'医患纠纷', 'featurecode':'20000320', 'luicode':'10000011', 'lfid':'106003type=1', 'title':'医患纠纷' } url = base_url + urlencode(params) try: response = requests.get(url, headers=headers) if response.status_code == 200: print(page) return response.json() except requests.ConnectionError as e: print('Error', e.args)
3、获取到页面就到了最麻烦的解析页面的环节了,因为ajax返回的是json格式,所以用pyquery特别方便,这一部分需要具体分析获得json结构,我的经验是先如果嵌套在字典里就用.get()方法,如果内容在list里,就用for循环,最终可以发发现,我们要获取的内容先大致是这样