我对网络抓取工具有疑问。 我想使用Python获得几个评论页面。
这是我的网络抓取程序代码。
URL = 'https://www.example.co.kr/users/sign_in'
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'
headers = {'Content-type': 'application/json', 'Accept': 'text/plain', 'User-Agent':user_agent}
login_data = {'user':{'email':'id', 'password':'password', 'remember_me':'true'}}
client = requests.session()
login_response = client.post(URL, json = login_data, headers = headers)
print(login_response.content.decode('utf-8'))
jre = 'https://www.example.co.kr/companies/reviews/ent?page=1'
index = client.get(jre)
html = index.content.decode('utf-8')
print(html)
此代码仅获取page = 1,但我想使用格式方法获取page = 1,page = 2,page3....。我该如何实现?
答案 0 :(得分:0)
您应根据需要在每页上使用一会儿或for循环。 尝试这样的模式:
page = 1
while page <= MAX_PAGE or not REACHED_STOPPING_CONDITION:
# Compose page url
jre = f'https://www.example.co.kr/companies/reviews/ent?page={page}'
# Get page url
index = client.get(jre)
# Do stuff...
# Increment page counter
page += 1
我认为,一旦您可以访问网站,则无需再次执行登录。如果需要,您应该在循环中插入登录部分。
导航网站页面的另一种方法是在文档中找到某种“下一页”或“上一页”引用,然后与它们进行交互:
# Compose page url
jre = 'https://www.example.co.kr/companies/reviews/ent?page=1'
# Get page
index = client.get(jre)
while page <= MAX_PAGE or not REACHED_STOPPING_CONDITION:
# Do stuff...
# Search next page element (ex. by CSS selector)
jre.find_element_by_css_selector('next-page').click()
# Increment page counter
page += 1