关于爬虫用f12查看网页源码和爬虫爬取出来的源码不一样的问题
我开始用的爬虫用的标签是网页源码显示的标签soup.find_all('div',class_="concent ke-cost")这个标签结果找不到任何数据
然后我直接把整个网页爬取下来找到的标签是soup.find_all('div',class_="mui-wpimagetext-item unloaded")。为啥我再网页查看的源码和python读取的源码是完全不同的。那么我平常去爬取网页的时候要怎么来提取标签呢。谢谢大佬解惑 审查看到的元素是经过浏览器加载的,有的分支是event触发才加载的,单单发request可能无法加载,你要找到真正拿到数据的那条request,直接去拿数据,不一定要看html。
另外把你的代码发上来,不要图片。 suchocolate 发表于 2020-10-24 18:50
审查看到的元素是经过浏览器加载的,有的分支是event触发才加载的,单单发request可能无法加载,你要找到真 ...
import requests
from bs4 import BeautifulSoup
import re
findImg = re.compile(r'data-ks-lazyload="(.*?)"')
def askurl():
head = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36'
}
url = 'https://detail.tmall.com/item.htm?id=556772183225&ali_refid=a3_430583_1006:1151055037:N:DY8nPNoQXxCaUzcW5xAY4EwR15x8pB0i:ad0101273a205b498baa557cde64cb9b&ali_trackid=1_ad0101273a205b498baa557cde64cb9b&spm=a230r.1.14.1'
request = requests.get(url=url,headers=head)
html = request.text
return html
def getData():
html = askurl()
soup = BeautifulSoup(html,'html.parser')
i = 1
for item in soup.find_all('div',class_="mui-wpimagetext-item unloaded"):
item = str(item)
img = re.findall(findImg,item)
print(img)
getData()
大佬这是我的代码,我没有太看懂您的意思。我想找的是详情图片的链接,你要找到真正拿到数据的那条request,直接去拿数据,不一定要看html这个要咋看呢,我无法通过审查元素找到我需要的标签,那么我的BeautifulSoup要怎么写呢 不要看element,以network的respone为准。 我之前也和你一样,有些是异步加载的,你就需要去搜你的那个字段,去找到真正的html再去发请求,这个有的时候却是很麻烦 本帖最后由 suchocolate 于 2020-10-24 19:41 编辑
1.详情图片分支绑定了事件,所以一次get拿不到。
2.图片的链接在另外的一次get中得到的js中,不过这个get请求的参数不知道是如何构建的,省事建议还是用selenium吧。
# 有的参数能从第一个html中得到,有的我也没查到。
3.你可以直接用requests拿到这个js:
import requests
url = 'https://aldcdn.tmall.com/recommend.htm?itemId=556772183225&categoryId=50008612&sellerId=3249953402&shopId=255372786&brandId=3229901&refer=&brandSiteId=0&rn=&appId=03054&isVitual3C=false&isMiao=false&count=12&callback=jsonpAld03054'
headers = {'user-agent': 'firefox'}
r = requests.get(url, headers=headers)
print(r.text)
2269099035 发表于 2020-10-24 19:26
不要看element,以network的respone为准。
请问下在network里面我要怎么才能确定我需要的东西在哪个链接里面呢。感觉有超级多的链接 suchocolate 发表于 2020-10-24 19:39
1.详情图片分支绑定了事件,所以一次get拿不到。
2.图片的链接在另外的一次get中得到的js中,不过这个ge ...
我的审查元素怎没有看到有事件的标志呢
还有那个您在network去找的链接,在那么多的东西里面您是怎么知道自己需要的是哪个链接呢 18508410033 发表于 2020-10-25 20:57
我的审查元素怎没有看到有事件的标志呢
我的是比较新的firefox,google好像没有event的提示。
主要找html,xhr,最后是js。 suchocolate 发表于 2020-10-25 21:43
我的是比较新的firefox,google好像没有event的提示。
主要找html,xhr,最后是js。
好的 谢谢大佬
页:
[1]