import requests
url = 'https://m.weibo.cn/api/container/getIndex';
headers = {
'Host': 'm.weibo.cn',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
}
def get_page(page):
params = {
'containerid': '2304132830678474_-_WEIBO_SECOND_PROFILE_WEIBO',
'page_type': '03',
'page': page
}
try:
response = requests.get(url, params=params)
if response.status_code == 200:
return response.json()
except requests.ConnectionError as e:
print('Error', e.args)
from pyquery import PyQuery as pq
def parse_pase(json):
if json:
items = json.get('data').get('cards')
for item in items:
item = item.get('mblog')
weibo = {}
weibo['id'] = item.get('id', 'NULL')
if(weibo['id'] == 'NULL'):
continue
weibo['text'] = pq(item.get('text')).text()
weibo['attitudes_count'] = item.get('attitudes_count')
yield weibo
if name == "main":
for page in range(2, 20):
json = get_page(page)
results = parse_pase(json)
for result in results:
print(result)