鱼C论坛

 找回密码
 立即注册
查看: 1006|回复: 1

求救,爬取这个网站新闻和标题时候爬不到内容,只能爬到导航栏

[复制链接]
发表于 2021-8-30 10:52:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from urllib.request import urlopen
from bs4 import BeautifulSoup
import pandas as pd

def get_response(url,tag):
    response=urlopen(url)
    soup=BeautifulSoup(response.read(),"lxml")
    result=soup.find_all(tag)
    data=list()
    for a in result:
        if a:
            if a.text and len(a.text)>5: #过滤导航栏
                row=dict()
                row['title']=a.text
                row['href']=a.get('href')
                data.append(row)
    return data

url='http://jnxxq.jinan.gov.cn/col/col39742/index.html'
tag='a'

data=get_response(url,tag)
print(data)


解决加微信一盒烟钱红包
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-30 17:07:28 | 显示全部楼层
本帖最后由 suchocolate 于 2021-8-30 17:22 编辑

页面把新闻链接和标题信息放到了<datastore>,用re可以取出来。具体存放位置看一下生成的r.txt。
  1. from urllib import request
  2. import re


  3. def main():
  4.     headers = {'User-Agent': 'Firefox'}
  5.     url = 'http://jnxxq.jinan.gov.cn/col/col39742/index.html'
  6.     req = request.Request(url, headers=headers)
  7.     r = request.urlopen(req)
  8.     txt = r.read().decode('utf-8')
  9.     with open('r.txt', 'w', encoding='utf-8') as f:
  10.         f.write(txt)
  11.     result = re.findall(r'</span><a (.*?)\'target', txt)
  12.     for i in result:
  13.         print(i)


  14. if __name__ == "__main__":
  15.     main()
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-6 00:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表