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

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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)