Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果下一页使用java脚本加载,并且没有URL更改,那么如何使用python刮取下一页数据?_Javascript_Python_Web Scraping - Fatal编程技术网

Javascript 如果下一页使用java脚本加载,并且没有URL更改,那么如何使用python刮取下一页数据?

Javascript 如果下一页使用java脚本加载,并且没有URL更改,那么如何使用python刮取下一页数据?,javascript,python,web-scraping,Javascript,Python,Web Scraping,我正在尝试使用python来刮取网页。我已经成功地抓取了第一页,但我无法进入下一页,因为下一页URL相同,下一页正在加载javascript import requests import bs4 as bs url ='https://scamalert.sg/scam-details' r = requests.get(url) htmlcontent = r.content soup = bs.BeautifulSoup(htmlcontent, 'html.parser') for t

我正在尝试使用python来刮取网页。我已经成功地抓取了第一页,但我无法进入下一页,因为下一页URL相同,下一页正在加载javascript

import requests
import bs4 as bs

url ='https://scamalert.sg/scam-details'
r = requests.get(url)
htmlcontent = r.content
soup = bs.BeautifulSoup(htmlcontent, 'html.parser')

for tag in soup.find_all('h4',{"class":"card-title"}):
    print (tag.text)
[网页HTML][1] [1]: https://i.stack.imgur.com/8zV9y.png

二,


  • ==0这是一种获取所有故事及其相关链接到详细信息页面的方法,该页面将遍历该站点的所有后续页面。如果您考虑检查Chrome DV工具,您会注意到对该URL进行了HTTP请求>代码>https://scamalert.sg/scam-details/GetStoryListAjax/以及用于填充json内容的适当参数,您可以从中提取所需字段

    import json
    import requests
    
    base = 'https://scamalert.sg{}'
    link = 'https://scamalert.sg/scam-details/GetStoryListAjax/'
    
    payload = {
        'scamType': '',
        'year': '',
        'month': '',
        'sortBy': 'Latest'
    }
    
    page = 1
    while True:
        payload['page'] = page
        r = requests.post(link,data=payload)
        items = json.loads(r.json()['result'])['StoryList']
        if len(items)<=1:break
        for item in items:
            print(item['Title'],base.format(item['Url']))
    
        page+=1
    
    导入json
    导入请求
    基地组织https://scamalert.sg{}'
    链接https://scamalert.sg/scam-details/GetStoryListAjax/'
    有效载荷={
    “scamType”:“,
    “年”:“,
    “月”:“,
    “sortBy”:“最新”
    }
    页码=1
    尽管如此:
    有效载荷['page']=第页
    r=请求.post(链接,数据=有效负载)
    items=json.loads(r.json()['result'])['StoryList']
    
    如果在这种情况下您需要使用len(项目)
    Selenium
    ,先生,您能提供一些示例吗?您是否尝试过@vpnkumar下面的脚本?反馈是什么?