蘑菇帮 2019-07-07 19:43 采纳率: 38.5%
浏览 5145
已结题

python 如何爬取url翻页不变的网址

http://mzj.beijing.gov.cn/wssbweb/wssb/dc/searchOrgList.do?action=searchOrgList

我需要爬取这个网站每一家公司的详细信息,我的思路是通过这个主页面爬取所有详情页面的网址,然后再打开详情页面(公司详细信息页面)爬取需要的数据。我现在面临的问题是,这个网址翻页时网址没有发生变化,在网上查了很多方法都没有用,总是重复爬取第一页内容。

求各位大神赐教!!

这是我的代码:

import requests
import os
import re
ww='http://mzj.beijing.gov.cn'
web=[]
def get_page(url,page_num):
pageList =[]
for i in range(1,page_num +1):
formdata ={'type':'index' ,
'paged': i}##从网上找的方法,也用了requests.post,也试过把paged改成current_page都无效
try:
r = requests.post(url,data =formdata)
r.raise_for_status()
r.encoding = r.apparent_encoding
p = re.compile('<a href="(.*?)"\starget')
tempList = re.findall(p,r.text)
for each in tempList:
site=ww+each
pageList.append(site)
tempList = []
except:
print('链接失败')
return pageList
url='http://mzj.beijing.gov.cn/wssbweb/wssb/dc/searchOrgList.do?action=searchOrgList'
web=get_page(url,763)
len(web)

  • 写回答

3条回答 默认 最新

  • 小乙shine 2019-07-07 20:05
    关注

    我一般遇到这种情况会有两个思路:
    1.爬取主页面所有详情页的网址存入数据库,等全部存入后,然后第二步,逐个打开这些详情页进行爬取。
    当然,这可能需要对主页拿到的详情网址进行处理,因为拿到的可能是一些相对路径,需要把他们转换为标准的url,再存入数据库

    2.用selenium自动化测试框架写爬虫,就不必这样做,打开主页后,操作浏览器机器人,打开一个详情页,取完信息后存起来,再返回上一页,这种方法很麻烦,需要对selenium非常了解,

    建议选第一个,不但可以做断点续爬,而且可以做多线程爬虫,就是给几个爬虫分配不动的任务,让他们一起爬

    评论

报告相同问题?

问题事件

  • 请详细说明问题背景 12月13日

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记