我正在解析这个URL以从一个具有无限滚动的框中获取链接。以下是发送请求的mo代码,以获取下10个链接:
import requests
from bs4 import BeautifulSoup
import urllib2
import urllib
import extraction
import json
from json2html import *
baseUrl = 'http://www.marketwatch.com/news/headline/getheadlines'
parameters2 = {
'ticker':'XOM',
'countryCode':'US',
'docType':'2007',
'sequence':'6e09aca3-7207-446e-bb8a-db1a4ea6545c',
'messageNumber':'1830',
'count':'10',
'channelName':'',
'topic':' ',
'_':'1479539628362'}
html2 = requests.get(baseUrl, params = parameters2)
html3 = json.loads(html2.text) # array of size 10
在相应的HTML中,有一个元素类似于:
^{pr2}$这说明有更多的项需要通过滚动down来加载,但我不知道如何使用json文件编写循环来获取更多链接。 我的第一次尝试是使用Beautiful Soup并编写以下代码来获取链接和ID:
url = 'http://www.marketwatch.com/investing/stock/xom'
r = urllib.urlopen(url).read()
soup = BeautifulSoup(r, 'lxml')
pressReleaseBox = soup.find('div', attrs={'id':'prheadlines'})
然后检查是否还有更多的链接要抓取,获取下一个json文件:
loadingMore = pressReleaseBox.find('li',attrs={'class':'loading'})
while loadingMore != None:
# get the links from json file and load more links
我不知道如何实现评论部分。你知道吗? 我没有义务使用beauthulsoup,任何其他的图书馆都可以。在
下面是如何加载更多json文件:
UniqueId
的值。e5a00f51-8821-4fbc-8ac6-e5f64b5eb0f2:8499
e5a00f51-8821-4fbc-8ac6-e5f64b5eb0f2
为sequence
8499
提取为messageNumber
docId
为空1222712881
sequence
为空messageNumber
为空1222712881
提取为docId
sequence
、messageNumber
、docId
放入参数2中。在requests.get(baseUrl, params = parameters2)
获取下一个json文件。在相关问题 更多 >
编程相关推荐