我正试图从网站www.vestiairecollective.com
抓取数据虽然抓取我只能访问其主页的少数几个。例如,我的脚本无法抓取网址http://www.vestiairecollective.com/women-bags/handbags/#_=catalog&id_brand%5B%5D=50&material%5B%5D=3&step=180
的数据。
我已经提到了堆栈溢出的许多问题,这些问题说明了如何做到这一点。因为我在Windows上使用python 3.5,“mechanize”和“cookielib”不起作用。我也看到几个问题指出像“robobrowser”这样的图书馆可以完成这项工作。我也试过这个并且卡在中间。
然后我尝试了会话,当我输入request.Sessions()时,它说请求没有一个名为sessions的属性。
当我使用上述网址时,请使用robobrowser或任何其他方式使用此特定网站的代码帮助我。
这是我在提到答案后尝试过的: -
import urllib.request
from bs4 import BeautifulSoup
import requests
session=requests.Session()
loginUrl='http://www.vestiairecollective.com/'
resLogin=session.post(loginUrl,data= {'h':'5fcdc0ac04537595a747e2830037cca0','email':'something@gmail.com','password':'somepasswrd','ga_client_id':'750706459.1463098234'})
url='http://www.vestiairecollective.com/women-bags/handbags/#_=catalog&id_brand%5B%5D=50&material%5B%5D=3'
res=session.get(url)
//The below url i have given because I want to scrape from this url
crl=urllib.request.urlopen("http://www.vestiairecollective.com/women-bags/handbags/#_=catalog&id_brand%5B%5D=50&material%5B%5D=3")
soup=BeautifulSoup(crl.read(),"html.parser")
geturl=soup.find_all("div",{"class":"expand-snippet-container"})
for i in geturl: //The Scraping Part
data1=i.find_all("p",{"class":"brand"})
datac1=[da.contents[0] for da in data1]
brdata=("\n".join(datac1))
print(brdata)
这里的抓取应该从“crl”页面完成,但是从主页面本身进行。
答案 0 :(得分:0)
request.Sessions()
中的错误应为request.Session()
。
我的answer类似问题将提供一些示例代码,用于使用python requests
(Python 3)进行持久登录。
简短总结:
requests
模块创建会话post
或get
参数激励您的一些相关代码行(不按原样运行,您需要根据需要修改这些代码):
import requests
session = requests.Session()
session.headers.update({'user-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1')
# use the site's form field names for the following line
# (and use the resLogin for checking successful login):
resLogin = session.post(loginUrl, data = {'user' : 'username', 'password' : 'pwd'})
# follow-up calls to a session which was used to login
res = session.get(url)