我想删除此Link中的所有图像链接,我使用的是requests + Beautiful soup-python 3.7。 我的问题是结果是3,而页面上有6张图像。
import requests
from bs4 import BeautifulSoup as bs
url='https://ahara.kar.nic.in/FCS_report/ViewRC/dup_rc_view.aspx'
var='240100160336'
payload={'rc_no':var}
headers={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3','Cookie':'ASP.NET_SessionId=v4kd535hn3d43z0x4ttgzqit','User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}
res=requests.get(url,headers=headers,data=payload)
obj=bs(res.text,'html.parser')
#obj=obj.find('table')
imgs=obj.find_all('img')
print(len(imgs))
编辑:我输入的网址错误。但是在编辑代码后,我无法获得真实的完整页面 编辑2:当我用浏览器更改cookie时,下面的代码起作用了,然后又起作用了,但是如何获取此cookie?因为和昨天不同 编辑:我可以解决我所有的问题,并将标记为我到这里的最佳解决方案
答案 0 :(得分:2)
这是因为在您的代码中,您只能在table标记内找到图像:
obj=obj.find('table')
只有2个。
也尝试在页面中搜索其他图像:
import requests
from bs4 import BeautifulSoup as bs
url='https://ahara.kar.nic.in/FCS_report/ViewRC/dup_rc_view.aspx?rc_no={};'
#var=input("Enter the variable to Bring Photos links:")
var='240100160336'
url=url.format(var)
headers={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3','Cookie':'ASP.NET_SessionId=v4kd535hn3d43z0x4ttgzqit','User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}
res=requests.get(url,headers=headers)
obj=bs(res.text,'html.parser')
# Search for images inside tables
objTable=obj.find('table')
imgs=objTable.find_all('img')
# Search for other images in the page
imgs2=obj.find_all('img')
print(len(imgs) + len(imgs2))
编辑:
代码中提供的网址与您要抓取的网址不同。
您代码中的URL是:
https://ahara.kar.nic.in/FCS_report/ViewRC/dup_rc_view.aspx?rc_no={};
您用来修改URL并将变量附加到其中的方法无济于事。它打印:
https://ahara.kar.nic.in/FCS_report/ViewRC/dup_rc_view.aspx?rc_no=240100160336;
请查看此链接以获取有关Parse URLs into components的帮助
您在帖子中链接的URL是:
https://ahara.kar.nic.in/FCS_report/ViewRC/dup_rc_view.aspx?rc_no=240100160336
我对您的代码做了一些修改,并添加了正确的URL:
import requests
from bs4 import BeautifulSoup as bs
url='https://ahara.kar.nic.in/FCS_report/ViewRC/dup_rc_view.aspx?rc_no=240100160336'
res=requests.get(url)
obj=bs(res.text, 'html.parser')
# Search for images in the page
imgs=obj.find_all('img')
images = []
for img in imgs:
images.append(img.get('src'))
print(images)
print(len(images))
请查看现在是否可以正常运行。