gpt4 book ai didi

javascript - 使用 Python 抓取 javascript 生成的页面

转载 作者:行者123 更新时间:2023-12-02 16:28:34 25 4
gpt4 key购买 nike

我需要获取 https://hasjob.co/ 的一些信息,我可以像往常一样通过登录页面和抓取来抓取一些信息,但大多数信息只有当你向下滚动到页面底部时才由 Javascript 生成。

有没有使用python的解决方案?

import mechanize
import cookielib
from bs4 import BeautifulSoup
import html2text

import pprint

job = []

# Browser
br = mechanize.Browser()

# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

# Browser options
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)

br.addheaders = [('User-agent', 'Chrome')]

# The site we will navigate into, handling it's session
br.open('https://auth.hasgeek.com/login')

# View available forms
##for f in br.forms():
## print f

# Select the second (index one) form (the first form is a search query box)
br.select_form(nr=1)

# User credentials
br.form['username'] = 'username'
br.form['password'] = 'pass'

br.submit()

##print(br.open('https://hasjob.co/').read())

r = br.open('https://hasjob.co/')


soup = BeautifulSoup(r)


for tag in soup.find_all('span',attrs={'class':'annotation bottom-right'}):

p = tag.text
job.append(p)


pp = pprint.PrettyPrinter(depth=6)

pp.pprint(job)

最佳答案

出于某种原因,几乎没有人注意到 Hasjob 有 Atom feed 并且它是从主页链接的。使用 feedparser library 从 Hasjob 读取结构化数据很简单:

import feedparser
feed = feedparser.parse('https://hasjob.co/feed')
for job in feed.entries:
print job.title, job.link, job.published, job.content

提要过去 30 天是满的,但现在有超过 800 个条目,并且服务器上有相当大的负载,因此我将其减少到最后 24 小时的作业。如果您想要定期获得工作帮助,只需每天至少从该 URL 加载一次即可。

关于javascript - 使用 Python 抓取 javascript 生成的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28499274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com