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

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 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能