Beautifulsoup vs Selenium vs Scrapy - Which Tool for Web Scraping?

Поділитися
Вставка
  • Опубліковано 14 січ 2025

КОМЕНТАРІ • 102

  • @xpathservice2179
    @xpathservice2179 4 роки тому +57

    3:28 you got the wrong title there... I guess it should be SELENIUM not SCRAPY

    • @JohnWatsonRooney
      @JohnWatsonRooney  4 роки тому +18

      Oh man, you’re right. thanks for pointing that out.

  • @celerystalk390
    @celerystalk390 3 роки тому +8

    The best video comparing web scraping tools hands down!! Thank you for another extremely useful video John!

  • @rudisygo6804
    @rudisygo6804 3 роки тому +2

    Mr John sir. I would really liketo thank you for the service you have given us online. YOU ARE TRULY VALUED THANK YOU FROM SOUTH AFRICA. You seriously are become a role model and you teaching styles are awesome!!!!!!!!!!

    • @JohnWatsonRooney
      @JohnWatsonRooney  3 роки тому

      Thank you very much! Hello to South Africa 🇿🇦

  • @travis.gooden
    @travis.gooden 2 роки тому +3

    Wish I had watched this before choosing Selenium for a scraping project. Really feel you hit the nail on the head. Great video!

    • @ayeshavlogsfun
      @ayeshavlogsfun 2 роки тому

      Why ?
      In not selenium best?

    • @travis.gooden
      @travis.gooden 2 роки тому +2

      @@ayeshavlogsfun Selenium is really good for automating tasks such as browsing, interacting with elements on a page, etc. I had more trouble setting it up purely to scrape results, as that isn't it's primary focus.

    • @ayeshavlogsfun
      @ayeshavlogsfun 2 роки тому

      @@travis.gooden which Module are you using for scraping now ?

  • @rrahll
    @rrahll 4 роки тому +6

    Really interesting theme! Thank you for your tutorials and good luck! Really useful content!

  • @NivAwesome
    @NivAwesome 4 роки тому +9

    Thanks for the information!
    I found another method which is not very efficient but worked for me on a small dynamic website page.
    I ran selenium in the background, sent keys (ctrl + a, ctrl + c) then pyperclip.paste() into a variable. Then I used re module on the string to take the information I needed. I used split method as well on the
    new lines to convert the string into a list with strings.

    • @JohnWatsonRooney
      @JohnWatsonRooney  4 роки тому +1

      Cool idea - if it works for you then that’s great!

  • @Kralnor
    @Kralnor 2 роки тому +2

    Thanks for a great rundown of the options available for web scraping in Pyhton. There were a few that I was not familiar with.

  • @harshgupta1999
    @harshgupta1999 3 роки тому +1

    best explainer video on youtube about this topic

  • @Berenduinelbardo
    @Berenduinelbardo 3 роки тому +4

    Thanks for your videos. I can understand you very well, thank you for taking care of your pronunciation, I am Spanish and we do not have Spanish-speaking channels as good as yours. Keep it up.

  • @affanahmed9318
    @affanahmed9318 2 роки тому +3

    most of the time what I do is use selenium to get me where I want then extract what I want by making soup of the page using beautifulsoup extracting specific tag info then afterwards using pandas to save the list data in data frame and exporting it out as a csv or excel .

  • @mattmovesmountains1443
    @mattmovesmountains1443 4 роки тому +9

    Also, have you thought about a patreon? Your videos are consistently helpful - I'd join it around a $5/mo

  • @omkarpatil9234
    @omkarpatil9234 10 місяців тому +2

    Scrapy for me is like second to none. Its a total beast if you are able to use it to its full potential

    • @JohnWatsonRooney
      @JohnWatsonRooney  10 місяців тому +1

      Yes I agree, have come around to it and using it a lot more now

    • @omkarpatil9234
      @omkarpatil9234 10 місяців тому

      @@JohnWatsonRooney So now i am finding that to extract text and parse html 'beautifulSoup' is really good than Scrappy which also confirms what you said in your video !
      So right now for my task i am using beautifulSoup (for parsing) and Scrappy(for running a headless browser), Which works fine but I am curious if you know any more easy techniques to parse html using scrappy especially to get text. Please let me know if you have any thoughts .
      Thanks you !

  • @omidasadi2264
    @omidasadi2264 3 роки тому

    gist of the tech in web crawling ... nice and easy got summarized. thanks my friend

  • @GelsYT
    @GelsYT 2 роки тому +2

    I have been using requests along with bs4 & I did heard about scrapy and I agree it isn't good for beginners so I was a beginner that time it really was daunting. But now I think it's time to scrapy time

    • @JohnWatsonRooney
      @JohnWatsonRooney  2 роки тому +1

      It really is very powerful when you understand it!

  • @ProjectXH
    @ProjectXH Рік тому +1

    Greatly informative, thank you.

  • @AmirAnsari-wh6gt
    @AmirAnsari-wh6gt 3 роки тому +1

    you are the god of scraping :) thank you sir

  • @ujjwalchetan4907
    @ujjwalchetan4907 18 днів тому

    Quite useful information. Thanks🙏👍

  • @RichPortah
    @RichPortah 4 роки тому +1

    Another A+ video..... After I watch your videos I find a website to scrap just for fun

  • @Hyuts
    @Hyuts 2 роки тому +1

    Great video thank you. Thoughts on AutoHotkey?

  • @hudsona4004
    @hudsona4004 2 роки тому +1

    You mentioned that selenium sends information about itself to websites being scraped, so that websites could detect that selenium is being used. I'm curious if you know more about this and any workarounds?

  • @Actanonverba01
    @Actanonverba01 2 роки тому +1

    Very useful for beginners

  • @lautarob
    @lautarob 3 роки тому +5

    Another very educative video of yours. Thanks!!. Question: what would be the best method to scrape a site that has a huge table that is spread across many pages, in a way that (for example) only 30 rows are shown in the first page (say 1 - 30) then the next 30 on the 2nd page (31-60) etc. etc. all the way up to over 10,000 rows or more. Can I move to the next page using Scrapy of BS4 or I need Selenium for that purpose?.

    • @JohnWatsonRooney
      @JohnWatsonRooney  3 роки тому

      That depends on the way the page is getting the data. I suspect it’s via Ajax - check out my newer video on scraping JavaScript tables that might help you

    • @MirGlobalAcademy
      @MirGlobalAcademy 2 роки тому

      Facing the same problem

  • @YamekDrope
    @YamekDrope 3 роки тому

    Can we get more information on the method mentioned at the end? How can we simulate requests?

  • @ericxls93
    @ericxls93 3 роки тому +1

    So useful! Thank you.

  • @e4rohan
    @e4rohan 4 роки тому +1

    great video thanks for the summary

  • @adamchurchwell4019
    @adamchurchwell4019 2 роки тому

    do you have any videos on scrape masking?

  • @arjay_2002
    @arjay_2002 3 роки тому +1

    Please tutorial on your command terminal on your windows

    • @JohnWatsonRooney
      @JohnWatsonRooney  3 роки тому

      Sure, I could do a setup video

    • @arjay_2002
      @arjay_2002 3 роки тому

      @@JohnWatsonRooney thank you!! It looks really neatt

  • @dreamtolive4564
    @dreamtolive4564 4 роки тому +1

    Really good and informative

  • @hubertcombomarketing2693
    @hubertcombomarketing2693 4 роки тому +1

    Hi John. Thank you for your great work. Could you please make some short video about parsing html tables with colspan inside?

  • @WaleedShreef
    @WaleedShreef 4 роки тому +2

    Hi John, I missed you lately because I got busy.
    I want to tell you Happy New Year.
    And I want to ask how I can benefit financially from web sides scraping
    Regards Waleed

    • @JohnWatsonRooney
      @JohnWatsonRooney  4 роки тому

      Happy new year to you too. To start I’d say try to get some paid work scraping data that people need, then try to build something useful with data you scrape and charge for the service

  • @the1gofer
    @the1gofer 4 роки тому +1

    Thanks!

  • @thulasirao9139
    @thulasirao9139 3 роки тому

    I had a confusion which one should I choose for scarping?. Thank you.

  • @ahmedmando9502
    @ahmedmando9502 Рік тому +1

    thanks bro

  • @abidhossain5527
    @abidhossain5527 2 роки тому

    Can you make a video about recent scrapy-playwright bug about implementing scrapy-playwright setting implementation and some books or resources to learn scrapy.

  • @vitorrochatech
    @vitorrochatech Рік тому

    Hello John, Thanks for the video!
    I have two questions:
    What the best tool for scrapper a website with login or autentication?
    And, when the website use a api with autentication, what can i use?

    • @JohnWatsonRooney
      @JohnWatsonRooney  Рік тому +1

      Easiest option is to use selenium or playwright, but it can be done with requests too - you’d need to find the login endpoint and send the credentials over.

  • @mohitsharmagarg
    @mohitsharmagarg 2 роки тому

    what would you recommend for creating scraping tool ?

  • @Klausi-uq4xq
    @Klausi-uq4xq 4 роки тому +1

    It depents on the Site and what infos i need..at the time in prefer Scrapy..

  • @md.sharifulislamshanto2103
    @md.sharifulislamshanto2103 3 роки тому

    What are you thinking about 'ParseHub'? Is it well enough to use in professional field?

  • @ivy4372
    @ivy4372 2 роки тому +2

    Thanks for the whole content!
    I got a question and it would be very helpful for me, if you can support:
    I have to scrape a dynamic website. If I scroll down, more objects are loading to this page (always 50 new). When I look in "developers" of my browser, I find the Data I need in the folder "XHRs" and with every scroll for new 50 objects, there is a new file called "730" with the new 50 objects in json-format. I need all the 730-files.
    do you know how to scrape them?

    • @JohnWatsonRooney
      @JohnWatsonRooney  2 роки тому

      Sure check out this video I did here it covers how to get that information Always Check for the Hidden API when Web Scraping
      ua-cam.com/video/DqtlR0y0suo/v-deo.html

  • @cnsnipon
    @cnsnipon Рік тому

    I liked a very didactic explanation

  • @ankushgaur9367
    @ankushgaur9367 3 роки тому

    Helpful. Subscribed!

  • @nachoeigu
    @nachoeigu 3 роки тому +1

    There are some things which I can't understand. What if I have to scrape a website that use Javascript (if I make a request, I receive a part of the content of the page)? The unique solution is to use Selenium or, with Scrapy, you can handle it without problem?

    • @JohnWatsonRooney
      @JohnWatsonRooney  3 роки тому

      You’ll need to use something to render the JavaScript out for you, and return all the page data as html to parse. That thing is a browser - but in some cases a smaller lighter version of a browser that runs headless (we don’t see it). That’s like splash or puppeteer (that’s what requests-html uses) or it could be selenium that we can control

  • @proribrajokproribrajok7789
    @proribrajokproribrajok7789 3 роки тому +1

    Is node js scraping is like python scrapy? which one better performe?

    • @JohnWatsonRooney
      @JohnWatsonRooney  3 роки тому +1

      The principles are the same, you make a request and receive data. I don’t know JavaScript well really to comment - but as far as I’m concerned you can’t go wrong with Scrapy - it’s built specifically to scrape data after all

  • @renatosardinhalopes6073
    @renatosardinhalopes6073 3 роки тому

    Wait, isn't the last method just requests with beautiful soup? What you mean when you compare beautiful soup against scrapy then?

  • @Kig_Ama
    @Kig_Ama 3 роки тому +1

    Great.

  • @roberttuttle4284
    @roberttuttle4284 Рік тому

    I am new to scraping. If you have a dynamic website that requires you input dates or numbers and click on buttons, what else besides selenium works? Does Beutiful Soup work? Very interested.

  • @-__--__aaaa
    @-__--__aaaa 4 роки тому +2

    bro what if captcha v2/v3 in some website . How to get rid of that

    • @-__--__aaaa
      @-__--__aaaa 4 роки тому +1

      @Neo No dude i need to do manually

  • @manishdaga
    @manishdaga 3 роки тому +1

    Greate Video

  • @d8nnii_
    @d8nnii_ 3 роки тому +1

    How do I scrape from reebonz.com? They added a layer of protection from a vendor (which I can’t remember) that renders their site almost impossible to scrape.

    • @JohnWatsonRooney
      @JohnWatsonRooney  3 роки тому +1

      look for the api the site is making requests too (network tab of inspect element) and start to make them yourself from your code

  • @jjeffery129
    @jjeffery129 3 роки тому

    It seems easier to use selenium to scrape google map by searching different zipcodes for gas prices but it’s too slow. Can scrapy be able to interact with the website like searching different inputs, or it is better to just use google api?

  • @depenz
    @depenz 2 роки тому

    requests + bs4 VS scrapy?

  • @DashaZakella1001
    @DashaZakella1001 2 роки тому

    what tool i can use to bypass blocking websaits if it understands that I m using automation tools?

  • @ShivamSharma-if1oh
    @ShivamSharma-if1oh 2 роки тому

    I want to scrape data from infinite scrol website which library should I choose

  • @lurkagurka
    @lurkagurka 3 роки тому

    So using Scrapy won't get u blocked as from using Selenium?

  • @mattmovesmountains1443
    @mattmovesmountains1443 4 роки тому +1

    Do you have a video that goes over the best scraper/tool for websites that have a constantly changing text element? Stock prices being the most well known example of this. I'm making something to scrape a "freefall auction" (price drops until someone buys one, or until it hits a predetermined low) and gather the lowest prices reached for multiple auction lots. I love using requests-html but it seems that it only captures the initial state of a rendered page, rather than any updates that occur once loaded. My guess is do basic gathering info with requests-html, then grab prices with selenium, which is my current approach, but wanted to check with the expert!

    • @JohnWatsonRooney
      @JohnWatsonRooney  4 роки тому +1

      Sounds like a cool project - if you want to email me the site I can have a look and see what I think? Email on my UA-cam main channel page

    • @mattmovesmountains1443
      @mattmovesmountains1443 4 роки тому

      @@JohnWatsonRooney Will do - thanks!

    • @NivAwesome
      @NivAwesome 4 роки тому

      @@JohnWatsonRooney May I email you a similar thing as well? Found it difficult with scripts, couldn't reach the page source with python (I think they rejected me because it's headless) and couldn't render it with requestsHTML...

    • @0xmatriksh
      @0xmatriksh 3 роки тому

      what about creating a video on this?

    • @ss877S
      @ss877S Рік тому

      @@JohnWatsonRooney Sir can we use Beautiful soup for web scraping stock prices .Please help

  • @helovesdata8483
    @helovesdata8483 3 роки тому +1

    Overall I think one should take the time to learn Scrapy if you need to web scrape for a job. It will be worth it in the long run. What do you think? (as I move over to your scrap for beginners video) LOL

    • @JohnWatsonRooney
      @JohnWatsonRooney  3 роки тому

      I think once you have the principles down, or if you are already proficient with Python, then definitely learn Scrapy

  • @sachinshavi2243
    @sachinshavi2243 3 роки тому

    Sir how to take paragraphs one by one .?

  • @sachinshavi2243
    @sachinshavi2243 3 роки тому

    Sir I getting an error while running scrapy project.. error is Scrapy 2.4.1 -no active project
    Unknown command: crawl
    Use "Scrapy" to see available commands

  • @higheringai68
    @higheringai68 3 роки тому

    Who might be using IBM Watson Discovery?

  • @darqlite6780
    @darqlite6780 3 роки тому +2

    you mentioned that if you needed to click a button or input in a field than selenium could be what you're after, does that mean that you _can't_ accomplish that with, say, scrapy and some addons?

    • @JohnWatsonRooney
      @JohnWatsonRooney  3 роки тому +1

      Well, yes you could - depending on what it is. You can write LUA scripts for Splash that can simulate that, or if you are find a way around having to actualy click something, like getting the data elsewhere, or by finding the url that the data comes from you could get around it. There are some libraries that allow some control over these things but are all based around a browser somehow, like Mechanical Soup

  • @FishingWorlds
    @FishingWorlds 3 роки тому

    I was trying to get things done last 20 minutes with BeautifulSoup but I have to press an accept button on wozwaardeloket.nl and the site is made in JSP so that mean's BeatifulSoup will not be able to post form data to one page and than post another form data to the new page right?

  • @ahmedchokri3240
    @ahmedchokri3240 2 роки тому

    Hey bro, i need some help,
    I'm working on a project, a part from it is getting some data from Instagram and put them Into my Web app of course they must be always updated.. In this case i think selenium is low but i need it to connect to Instagram account also i need http request... So plz advise me..

  • @odocic
    @odocic 3 роки тому +1

    So scrapy is the best

  • @mastersdubai4729
    @mastersdubai4729 3 роки тому

    Video very interesting,,plz advise how I can scrap following , followers profiles in Instagram ,,plz

  • @sachinshavi2243
    @sachinshavi2243 3 роки тому

    How to get unformatted data into format data .?