无法用requests获取网页源码时,改用selenium获取

Posted 修罗神天道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法用requests获取网页源码时,改用selenium获取相关的知识,希望对你有一定的参考价值。

今天想从某个网站上爬取信息,发现无法通过requests获取网页源码,代码如下:

import requests
from fake_useragent import UserAgent

headers = { 'User-Agent': UserAgent().random }
url = 'https://www.sxpdf.com/jisuan/page/50/'
r = requests.request(method = 'get',url=url,headers=headers)
print(r.text)

以上代码本身没有啥问题,换个常规的网页就能爬取,主要是那个网站比较特殊无法右击;

改用selenium获取网页源码,代码如下:

import re
import time
from selenium import webdriver

book_list = []
driver = webdriver.Chrome()
for x in range(0,51):
	url = 'https://www.sxpdf.com/jisuan/page/' + str(x) +'/'
	driver.get(url)
	time.sleep(5)
	books = set(re.findall("《(.*?)》",driver.page_source))
	books = list(books)
	book_list.extend(books)

book_list = list(set(book_list))
print(book_list)

爬取成功

以上是关于无法用requests获取网页源码时,改用selenium获取的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫之无法获取网页源码的解决方案详解

Python爬虫之无法获取网页源码的解决方案详解

python如何获取网页源码中整个<body>的内容?

python爬虫使用requests请求无法获取网页元素时终极解决方案

asp.net 网页套用母版后,其后台代码用 Request.Files 无法获取值,郁闷!

如何通过JavaScript或者jQuery异步实现获取远程网页源码,例如按下按钮就显示某网站的源