python多页爬取page_【Python requests多页面爬取案例】

"```python

import requests

from fake_useragent import UserAgent # 随机ua库

class Boring():

def __init__(self, page_scope=(4, 7)):

"""

:param page_scope: 页码范围

"""

self.page_scope = page_scope

self.all_id = self.get_all_company_id()

self.enterprise_info = self.get_all_company_info()

self.show_enterprise_info()

@property

def firefox_ua(self):

"""返回随机火狐UA头"""

ua = UserAgent(use_cache_server=False)

return {'User-Agent': ua.Firefox} # ua.Firefox:随机生成火狐浏览器UA

def get_all_company_id(self):

"""

将返回指定页码数内的公司的id

:param start_page: 起始页码

:param end_page: 结束页码

"""

all_id = {}

url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList' # 此连接见图1

for page in range(self.page_scope[0], self.page_scope[1] + 1):

json_text = requests.post(url, data=self.post_data(page), headers=self.firefox_ua).json()

current_page_all_id = [dict['ID'] for dict in json_text['list']]

all_id.setdefault(page, current_page_all_id)

return all_id

def get_all_company_info(self):

"""开始获取公司信息"""

url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById' # 见图3

enterprise_info = {}

for page in self.all_id:

for id in self.all_id.get(page):

response = requests.post(url, data={'id': id}, headers=self.firefox_ua) # data={'id': id}:见图4

if response.headers['Content-Type'] == 'application/json;charset=UTF-8':

json_text = response.json()

enterprise_info.setdefault(json_text.get('businessPerson'), json_text.get('epsName'))

# 这里仅获取企业负责人和企业名

return enterprise_info

def show_enterprise_info(self):

[print(k, v) for k, v in self.enterprise_info.items()]

def post_data(self, page):

"""获取公司列表时要提交的form"""

return {

'on': 'true',

'page': page,

'pageSize': '15',

'productName': '',

'conditionType': '1',

'applyname': '',

'applysn': '',

} # 见图2

go

Boring()

"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值