requests二次爬取全国邮编

全国邮编的网址:http://www.ip138.com/post/
我们这次是爬取 每一个省里面的所有邮编信息
这里要进行二次爬取,才能完全获取完数据.

import requests,re

#代理ip
proxy={
    "HTTP": "113.3.152.88:8118",
    "HTTPS": "219.234.5.128:3128",
}
#伪装头信息
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',
}

#根据正常跳转获取网址 分析网址,再进行拼接
# url="http://alexa.ip138.com/post/search.asp?page=503&regionid=2"

url="http://www.ip138.com/post/"
response=requests.get(url,headers=headers,proxies=proxy)
#网址编码为gbk 所以解码为gbk不再是utf-8
html=response.content.decode('gb2312')
#提取每个省的连接id码 用于第二次拼接url 请求
rec=re.compile(r'<a href="/(.*?)/" target="_blank">(.*?)</a>')
ret=rec.findall(html)
for i in ret:
    print("地区:"+i[-1]+"  "+"编号:"+i[0])
print()
msg=input("请输入要查询地区的编号:")
#拼接url
url_yz="http://www.ip138.com/%s/"%msg
response=requests.get(url_yz,headers=headers,proxies=proxy)
html_place=response.content.decode('gbk')
# print(html_place)


#  \u4e00-\u9fa5  
# 正则中这个代表匹配所有中文字符

rec_place=re.compile(r'<td>([\u4e00-\u9fa5]*?)</td><td><a href="/.*?/">(.*?)</a></td><td><a href="/.*?/">(.*?)</a></td>')
ret_place=rec_place.findall(html_place)
for i in ret_place:
    print("市县区名:"+i[0]+"   邮政编码:"+i[1]+"   长途区号:"+i[-1])


这样就可以完全把所有省市邮编都爬取完毕了

要完成bilibili番剧排行榜的爬取,特别是涉及到二次请求的JSON文件,可以按照以下步骤进行: 1. **分析网页结构**: 首先,使用浏览器的开发者工具(通常按F12键)查看网页的网络请求。找到获取排行榜数据的API接口,通常是XHR请求。 2. **发送初始请求**: 使用Python的`requests`库发送初始请求,获取排行榜的HTML页面或直接获取JSON数据。 3. **解析初始请求的响应**: 如果返回的是HTML页面,使用`BeautifulSoup`进行解析;如果返回的是JSON数据,直接使用`json`库解析。 4. **发送二次请求**: 根据初始请求的响应中包含的API接口或参数,发送二次请求以获取详细的番剧信息。 5. **解析二次请求的响应**: 再次使用`json`库解析返回的JSON数据,提取所需的信息。 以下是一个示例代码,展示了如何完成上述步骤: ```python import requests import json # 初始请求URL initial_url = 'https://api.bilibili.com/pgc/season/index/result' # 初始请求参数 params = { 'season_type': '1', 'pagesize': '20', 'page': '1' } # 发送初始请求 initial_response = requests.get(initial_url, params=params) # 解析初始请求的响应 initial_data = initial_response.json() # 获取二次请求的URL api_url = 'https://api.bilibili.com/pgc/web/season' # 二次请求参数 season_ids = ','.join([str(item['season_id']) for item in initial_data['result']['list']]) # 发送二次请求 secondary_response = requests.get(api_url, params={'season_ids': season_ids}) # 解析二次请求的响应 secondary_data = secondary_response.json() # 提取所需信息 for item in secondary_data['result']: print(f"番剧名称: {item['title']}") print(f"播放量: {item['stat']['view']}") print(f"追番人数: {item['stat']['favorites']}") print('---------------------------') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值