作为实习的一部分,我正在构建一个网络爬虫,当我按某些属性过滤时,我找不到得到空列表的原因。我正在努力搜集会议的名称、日期和地点。你知道吗
我试过几种不同的方法,结果都一样。下面是我尝试过的所有不同方法:
class AACRSpider(scrapy.Spider):
name = 'aacr'
allowed_domains = ['aacr.org/MEETINGS']
start_urls = ['https://www.aacr.org/MEETINGS/PAGES/EVENTLISTING.ASPX#k=']
def parse(self, response):
soup = BeautifulSoup(response.text, "lxml")
response.css("#Groups a::text").getall() #~ returns []
response.css(".result-event-date::text").getall() #~ returns []
soup.find_all('span', {'class':'result-event-date'}) #~ returns []
soup.find_all(class_="result-event-date") #~ returns []
#....
以上4种方法都返回空列表,而不是返回我知道存在于网页上的文本。据我所知,这些标记不是iframe的一部分。我不是很熟悉js,它是否限制了我的爬虫程序可以访问什么?你知道吗
如果你在访问页面(googledev工具中的network选项卡)时查看网络流量,你会发现原来的html不包含这些信息,直到页面完全加载后才会出现。我查看了一些http请求,与以下url关联的请求似乎就是获取会议的请求: 您可以复制cURL命令并使用它,也可以使用Selenium之类的工具以友好的方式处理页面。你知道吗
您可以按照页面动态获取内容的方式,以xhr格式发送xml。它以POST请求的形式发送,如下所示。然后解析出包含所需信息的json。你知道吗
相关问题 更多 >
编程相关推荐